我有三个表:

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我复制了以前的类似示例,但输出不同。

最佳答案

表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时,所有连接条件都必须为真才能返回结果。

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

关于mysql - 将具有两个不同公共(public)列的三个表联接起来,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54759933/

10-13 23:09