SQL连接查询输出

时间:2014-02-16 23:28:00

标签: mysql sql database join

表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

     

职业:木匠,牧羊人

1 个答案:

答案 0 :(得分:1)

GROUP_CONCATGROUP 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