分组和删除 SQL 中除一列之外的重复项



>我有 3 张桌子

  1. 扬声器
  2. 会话
  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 中获取此内容...?

谢谢。

您可以使用joingroup 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 ', ')

相关内容

  • 没有找到相关文章

最新更新