在sql中分组和删除除一列以外的重复项

y1aodyip  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(359)

我有三张table
扬声器
会议
事件

事件\u tbl

id  event_name
--- -----------
1   event1
2   event2
3   event3

扬声器(待定)

id  name
--- ----
1   john
2   smith
3   sooraj

会话\u 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中获得这个。。。?
谢谢。

vxqlmq5t

vxqlmq5t1#

你可以用 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 ', ')

相关问题