我有 3 个表,其结构如下:
表_A:
Date
, ID
, A1
, A2
。 表_B:
Date
, ID
, B1
。 表_C:
Date
, ID
, C1
, C2
, C3
。 我想将所有三个加入具有属性的表:
Date
、 ID
、 A1
、 A2
、 B1
、 C1
、 C2
、 C3
。对于这 3 个表,有些日期和 ID 是相同的,但有些则不同,所以我想做一些类似
LEFT JOIN
的 UNION
和 RIGHT JOIN
这样的事情,这样我就不会丢失任何日期和 ID 行。似乎我需要日期和 ID 组合来获取它们自己的唯一标识符,以便我可以加入表格,但我遇到了障碍。 最佳答案
你可以试试这个:
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)
这应该为您提供您正在寻找的答案,但是我认为该语句对于大型数据集会很慢。
关于MySQL 连接 3 个具有 2 个共同属性的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9012124/