我有3个表格,结构如下:
表-A:
Date
,ID
,A1
,A2
。 表-B:
Date
,ID
,B1
。Table_C:
Date
,ID
,C1
,C2
,C3
。我想将所有三个人加入一个包含属性的表:Date
,ID
,A1
,A2
,B1
,C1
,C2
,C3
。
对于3个表,一些日期和ID是相同的但有些不是这样我想要做LEFT JOIN
UNION
然后RIGHT JOIN
这样的事情让我不要丢失任何日期和ID行。似乎我需要日期和ID组合来获取他们自己的唯一标识符,以便我可以加入表格,但我遇到了障碍。
答案 0 :(得分:2)
你可以尝试这个:
SELECT Date, ID, A1, A2, B1, C1, C2, C3
FROM (
SELECT Date, ID
FROM Table_A
UNION
SELECT Date, ID
FROM Table_B
UNION
SELECT Date, ID
FROM Table_B
) d
LEFT JOIN Table_A a on (d.Date=a.Date and d.ID=a.ID)
LEFT JOIN Table_B b on (d.Date=b.Date and d.ID=b.ID)
LEFT JOIN Table_C c on (d.Date=c.Date and d.ID=c.ID)
这应该可以为您提供所需的答案,但我认为对于大型数据集,该语句会非常慢。