我有3张桌子,但我认为现在只需要2张桌子。这些表称为
1:运动员 2:training_session 3:俱乐部
我想为每个国家/地区检索在该国家/地区的俱乐部内执行的转帐活动,其他活动在每个列表中均以“,”分隔,不存在重复值
SELECT activity GROUP_CONCAT (DISTINCT activity ORDER BY activity
SEPARATOR ',') as "test" FROM training_session group by activity
我希望它会返回2行,这就是我想要的
答案 0 :(得分:0)
您没有显示表的所有列,但是作为有根据的猜测,我认为您需要这里的三个表。您可以从training_sessions
开始,然后基于athletes
加入athlete_id
,最后基于club
加入club_id
。然后,您可以按俱乐部国家/地区进行汇总,并使用您似乎已经知道的GROUP_CONCAT(DISTINCT ...)
:
SELECT
c.country,
GROUP_CONCAT(DISTINCT ts.activity ORDER BY activity) activities
FROM training_session ts
INNER JOIN athlete a ON a.id = ts.athlete_id
INNER JOIN club c ON c.id = a.club_id
GROUP BY c.country