如何将具有一个相似列的两个表连接到一个表中

时间:2014-06-12 13:37:18

标签: mysql sql

我有3张桌子,A和B以及C.

表A的样本数据

nid   tid
101    3
101    4
101    7
103    3
103    5
104    2
104    4
104    7

表B的样本数据

tid   name
2     ram
3     shyam
4     krishna
5     shiv
7     narad

我想要的是,在第三张表C

id   nid   labels
1    101   shyam, krishna, narad
2    103   shyam, shiv
3    104   ram, krishna, narad

我知道如何用PHP做到这一点,但有没有办法单独使用这个mysql?

两个表(A和B)都有数千条记录,目前没有任何唯一的列。

我尝试过GROUP_CONCAT但我无法构建所需的输出。

编辑1 - 我忘了提到表C已经插入了id和nid列,而标签列是空的。所以我需要帮助构建一些查询,它可以用上面提到的标签更新表C的所有记录。

感谢。的问候,

1 个答案:

答案 0 :(得分:2)

这将在TableC上插入记录。由于ID是自动生成的列,因此可以在INSERT子句中省略它。

INSERT INTO TableC(Nid, Labels)
SELECT  a.nid, GROUP_CONCAT(b.Name) Labels
FROM    TableA a
        INNER JOIN TableB b
            ON a.tid = b.tid
GROUP   BY a.nid