我看过有关如何在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中实现这一目标的最简单方法是什么?
答案 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