将三个表与2个不同的公共列连接起来

时间:2019-02-19 06:19:28

标签: mysql sql-server

我有三个表:

Table1: COL1 COL2
Table2: COL2 COL3 COL5
Table3: COL3 COL4

我想从表1中选择COL1,从表2中选择COL5,从表3中选择COL4

它喜欢两个联接表,但是当我使用以下查询时,它不起作用,COL5为空。

SELECT Table1.COL1, Table2.COL5, Table3.COL4 

FROM table3
INNER JOIN table2 ON table3.col3 = table2.col3
INNER JOIN table1 ON table1.col2 = table2.col2

请帮助。

PS我复制了以前的类似示例,但输出不同。

1 个答案:

答案 0 :(得分:0)

表3和表2之间似乎没有关系数据

SELECT Table1.COL1, Table2.COL5, Table3.COL4

table3.col3, table2.col3 --if this comes up as null then Table2.COL5 would be null
table1.col2, table2.col2 --if this comes up as null then Table2.COL5 would also be null

FROM table3
LEFT OUTER JOIN table2 ON table3.col3 = table2.col3
LEFT OUTER JOIN table1 ON table1.col2 = table2.col2

使用INNER JOIN时,所有连接条件都必须为true才能返回结果。

考虑更改您的INNER JOIN顺序或使用LEFT OUTER JOIN。