mysql:将两个有两个公共字段的表连接起来,得到第三个表


mysql: join two tables with two fields in common to get a third table

我需要一些使用mysql和phpmyadmin的帮助;我有两个共有两列字段的表,我需要将两个表连接到第三个表中,其中每个表的这两个字段是共有的;参考表也是表1,所以想法是第三个表实际上是表1,表2的惯例是将表2中的值1和值2添加到表1中,其中两个表的列1和列2相同。。。例如:

    table1:
    ID, Column1, Column2, Value1, Value2
    1 ,   DAN     ,  Citi1 ,    1  ,   3
    2 ,   JUAN    ,  Citi1 ,    5  ,   5
    3 ,   DAN     ,  Citi2 ,    3  ,   7
    4 ,   PEDRO ,  Citi1 ,    2  ,   4
    5 ,   JUAN    ,  Citi2 ,    7  ,   9
    table2:
    ID, Column1, Column2, Value1, Value2
    1 ,   DAN   ,  Citi1 ,    5  ,   0
    2 ,   JUAN  ,  Citi1 ,    0  ,   3
    3 ,   DAN    ,  Citi2 ,    4  ,   5
    4 ,   JUAN  ,  Citi2 ,    6  ,   8

    table 3, join:
    ID, t1/t2.Column1 , t1/t2.Column2, t1.Value1, t1.Value2, t2.Value1, t2.Value2
    ID, t1.Column1, t1.Column2, t1.Value1, t1.Value2, t2.Value1, t2.Value2
    1 ,   DAN        ,  Citi1          ,    1         ,   3          ,       5       ,       0
    2 ,   JUAN       ,  Citi1          ,    5         ,   5          ,       0       ,       3
    3 ,   DAN         ,  Citi2          ,    3         ,   7          ,       4       ,       5
    4 ,   PEDRO     ,  Citi1          ,    2         ,   4          ,       0       ,       0
    5 ,   JUAN        ,  Citi2           ,    1        ,   3          ,       6       ,       8

我建议您可能想阅读一些关于SQL JOIN的信息。以下是一些很好的例子。

这是你可能正在寻找的格式:

SELECT TableA.*, TableB.*, TableC.*, TableD.*
FROM TableA
    JOIN TableB
        ON TableB.aID = TableA.aID
    JOIN TableC
        ON TableC.cID = TableB.cID
    JOIN TableD
        ON TableD.dID = TableA.dID

此外,看看这篇文章的例子和信息。

对于插入,你可以这样做,例如:

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';