如何在MySQL中多次复制FULL JOIN?

时间:2016-05-10 04:54:36

标签: mysql join

我看过有关如何在MySQL中为2个表进行完全连接的文章。我还为多个表读过this,但这是我唯一的问题。

我有多个临时表(SQL查询的结果,但为简单起见,下面显示为表格)

Table1
ID  Value1
1   A
2   B

Table2
ID  Value2
2   C
3   D

Table3
ID  Value3
1   E
3   F

Table4
....

等等(至少10个表)。我需要的是这个

ID  Value1  Value2  Value3  Value4 ....
1   A               E
2   B       C
3           D       F
4 .......

尝试在没有FULL连接的情况下执行此操作似乎非常复杂。我在MySQL中实现这一目标的最简单方法是什么?

1 个答案:

答案 0 :(得分:3)

如果你想在没有完全连接的情况下组合这么多表(查询结果),那么最简单的方法是使用union distinct生成一个完整的id列表,并将所有tableson列表左边连接:

select tid.id, table1.value, ..., tableN.value from
    (select id from table1
     union distinct
     select id from table2
     ...) tid
left join table1 on tid.id=table1.id
...
left join tableN on tid.id=tableN.id