我有3张桌子,A和B以及C.
nid tid
101 3
101 4
101 7
103 3
103 5
104 2
104 4
104 7
tid name
2 ram
3 shyam
4 krishna
5 shiv
7 narad
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的所有记录。
感谢。的问候,
答案 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