我有 3 个表,其结构如下:

表_A:

  • Date , ID , A1 , A2

  • 表_B:
  • Date , ID , B1

  • 表_C:
  • Date , ID , C1 , C2 , C3

  • 我想将所有三个加入具有属性的表: DateIDA1A2B1C1C2C3

    对于这 3 个表,有些日期和 ID 是相同的,但有些则不同,所以我想做一些类似 LEFT JOINUNIONRIGHT 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/

    10-11 07:09
    查看更多