我有三张桌子
id event_name
--- -----------
1 event1
2 event2
3 event3
id name
--- ----
1 john
2 smith
3 sooraj
id name speaker_id event_id
---- ---- -------- ------
1 session1 1 1
2 session2 2 1
3. session3 1 2
4. session1 1 3
5. session2 3 3
我需要得到这样的结果。。。。
id speakername event_name
--- ------------ -----------
1 john event1, event2, event3
2 smith event1
3. sooraj event3
如何在MySQL中获得这个。。。?
谢了。
您可以使用join
和group by
:
select sp.id, sp.name, group_concat(e.event_name separator ', ')
from speakers sp left join
sessions s
on sp.speaker_id = s.id left join
events e
on sp.event_id = e.id
group by sp.id, sp.name;
如果事件名称可以为给定的演讲者重复,则可以使用:
group_concat(distinct e.event_name separator ', ')