SQL,表联接不会显示正确的输出

时间:2018-08-03 21:12:49

标签: mysql sql join

表1-静态数据

  

ID 1 |颜色1 |状态1 | ID 2

     

____ | _______ | _______ | ______

     

5555 |蓝色|新增| 7777

     

5555 |蓝色|新增| 3333

     

5555 |白|新增| 7777

     

5555 |灰色|新增| 7777

表2-我的数据

  

ID 2 |颜色2 |状态2 | ID 1

     

___ | _______ | _______ | ______

     

7777 |白|新增| 5555

     

7777 |灰色|旧的| 5555

表3:-输出

  

ID 1 | ID 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和颜色上尝试了inner,但是它不能输出所有内容。它不会说我错过了蓝色

如果我仅加入ID,状态将是正确的。

我尝试了外部连接,但似乎输出了错误的状态。

例如它将输出(颜色1-颜色2)蓝色-灰色,蓝色-白色,蓝色-蓝色,并返回颜色2错误的状态

0 个答案:

没有答案