>我有 3 张桌子
- 扬声器
- 会话
- 事件
Events_tbl
id event_name
--- -----------
1 event1
2 event2
3 event3
Speakers_tbl
id name
--- ----
1 john
2 smith
3 sooraj
Sessions_tbl
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 ', ')