我有三张表如下,
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)这个问题,但它没有帮助......我想可能不清楚为什么我再次发帖:)
答案 0 :(得分:1)
我认为,正如您在上面的问题中发布的那样,应该效果很好: -
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
答案 1 :(得分:0)