我有如下三个表,
Table1-
num |info
----------
1 |aaaaa
2 |bbbb
3 |ccc
3 |ccc
4 |dddd
Table2-
num |info
----------
1 |aaaaa
3 |ccc
4 |dddd
5 |eeee
6 |ffff
Table3-
num |info
----------
1 |aaaaa
6 |ffff
2 |bbbb
我要得到的结果是,
Result-
num |info num |info num |info
----------- ----------- ----------
1 |aaaaa 1 |aaaaa 1 |aaaaa
2 |bbbb NULL|NULL 2 |bbbb
3 |ccc 3 |ccc NULL|NULL
3 |ccc 3 |ccc NULL|NULL
4 |dddd 4 |dddd NULL|NULL
NULL|NULL 6 |ffff 6 |ffff
或
Result 2-
num |info num |info num |info
----------- ----------- ----------
1 |aaaaa 1 |aaaaa 1 |aaaaa
2 |bbbb NULL|NULL 2 |bbbb
3 |ccc 3 |ccc NULL|NULL
3 |ccc 3 |ccc NULL|NULL
4 |dddd 4 |dddd NULL|NULL
NULL|NULL 5 |eeee NULL|NULL
NULL|NULL 6 |ffff 6 |ffff
如果有一种方法可以检索给定结果中的任何一个,那就太好了 :) 非常感谢 :) .. 我试过像这样使用完全连接,
SELECT *
FROM tbl_1 AS a
LEFT OUTER JOIN tbl_2 AS b ON a.num = b.num
UNION
SELECT *
FROM tbl_1 AS a
RIGHT OUTER JOIN tbl_2 AS b ON a.num = b.num
但它只适用于 2 个表,如果完全连接是解决方案如何执行此操作?如果不是,我如何从给定的三个表中得出我想要的结果?
我尝试搜索,但没有人帮助执行此任务。
然后我问了这个问题 Join multiple tables (Special condition)但它没有帮助..认为可能不清楚这就是为什么我再次发布 :)
最佳答案
我认为您之前在下面的问题中发布的内容应该很好用:-
SELECT a.num numA, a.info infoA,
b.num numB, b.info infoB,
c.num numC, c.info infoC
FROM table1 a
LEFT JOIN table2 b
ON a.num = b.num
LEFT JOIN table3 c
ON a.num = c.num
ORDER BY a.num
关于mysql - Join多个表显示3个或更多表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13046934/