mysql - SQL,表连接不会显示正确的输出
问题描述
表 1 - 静态数据
编号 1 | 颜色 1 | 状态 1 | 编号 2
____|_______|_______|______
5555 | 蓝色 | 新 | 7777
5555 | 蓝色 | 新 | 3333
5555 | 白色 | 新 | 7777
5555 | 灰色 | 新 | 7777
表 2 - 我的数据
编号 2 | 颜色 2 | 状态 2 | 编号 1
___ |_______|_______|______
7777 | 白色 | 新 | 5555
7777 | 灰色 | 旧 | 5555
表 3: - 输出
编号 1 | 编号 2 | 颜色 1 | 颜色 2 | 状态 1 | 状态 2
____|____|______|________|_______|_______|
我基本上希望表 3 告诉我我错过了 ID2 7777 的蓝色以及其他匹配的颜色。
我一直在使用类似的代码
from table 1
Inner Join table 2 on t1.ID1 = t2.ID1 and t1.Color1 = t2.Color 2
注意,表 1 的数据总是比表 2 多。
简单的连接似乎不会产生我想要的结果。
我在 ID 和 Color 上尝试了 inner,但它并没有输出所有内容。它不会说我错过了蓝色
如果我只加入 ID,状态将是正确的。
我尝试了外连接,但它似乎输出了错误的状态。
例如,它将输出(颜色 1 - 颜色 2)蓝色 - 灰色、蓝色 - 白色、蓝色 - 蓝色并返回颜色 2 的错误状态
解决方案
推荐阅读
- r - XLConnect:保存工作簿更新错误
- sonarqube - SonarQube locak html 报告在新版本中不可用
- vue.js - 在子组件中使用 Vuex 观察和跟踪状态变化
- javascript - 出错后 PM2 不会重新启动我的进程
- android - Visual Studio 2017 工具 -> Android 已禁用
- arrays - Excel VBA 数组 - 写入事务数据
- css - 使用 VUE 应用程序去除主页上的细白边框
- sql - PostgreSQL:为什么不删除索引?
- javascript - 使用 Dailymotion javascript SDK 时,带有破折号的参数不起作用
- python - 什么是常用技术,以确保 TemplateView 的 get_context_data 中的代码逻辑被执行一次?