我有以下表格:
| 队友ID|队友姓名|团队ID|团队|
| - -|- -|- -|- -|
| 一个|艾米|十一|销售部|
| 一个|艾米|十二个|支持|
| 一个|艾米|十三个|市场部|
| 2个|彼得|十二个|支持|
| 2个|彼得|十三个|市场部|
我想对结果进行分组,使“团队”列按队友ID或队友姓名显示在一行中,如下所示:
| 队友ID|队友姓名|团队ID|团队|
| - -|- -|- -|- -|
| 一个|艾米|十一、十二、十三|销售、支持、营销|
| 2个|彼得|十二、十三|支持、营销|
我尝试了子查询、合并、一些奇怪的XML路径,但是作为一个新的SQL用户,我不能把我的头绕在弄清楚这一点上
我的原始查询得到的结果是:
SELECT
tm.teammate_id AS "Teammate ID",
tm.name AS "Teammate name",
itt.team_id AS "Team IDs",
it.team AS "Teams"
FROM
intercom_teammates AS tm
LEFT JOIN intercom_teammate_teams AS itt
ON tm.teammate_id = itt.teammate_id
LEFT JOIN intercom_teams AS it
ON tm.teammate_id = itt.teammate_id
2条答案
按热度按时间e5nqia271#
一个简单的group_concat就可以完成这个任务:
https://dbfiddle.uk/rU8-h8rX
kqhtkvqz2#
注意:我已经将您的
JOIN
更正为intercom_teams
,将itt.teammate_id
更改为it.teammate_id
;它会丢弃结果集。结果: