表1:
userid(PK)
name
age
表2:
jobid(PK)
jobname
表3:
userid(FK)
jobid(FK)
以上是ERD。在表1中说我有1行。
1 - 彼得 - 40
在表2中我有两行:
1 - 木匠
2 - 牧羊人
第3个表包含两者的“交集”,一对多关系。
由于peter有2个作业,因此行如下所示。
1 - 1
1 - 2
如何将2行合并为一行?如果我愿意,它将显示为:
姓名:彼得
年龄:40
职业:木匠,牧羊人
答案 0 :(得分:1)
将GROUP_CONCAT
与GROUP BY
:
SELECT t1.name
,t1.age
,GROUP_CONCAT(t2.jobname SEPARATOR ',')
FROM Table1 as t1
JOIN Table3 as t3 ON t3.userid = t1.id
JOIN Table2 as t2 ON t2.jobid = t3.jobid
GROUP BY t1.id