gpt4 book ai didi

mysql - 如何在 MySQL 的多对多关系中以逗号分隔的列表连接来自一个字段的数据?

转载 作者:IT老高 更新时间:2023-10-29 00:16:42 28 4
gpt4 key购买 nike

我在人员和部门之间存在多对多关系,因为一个人可以在多个部门。

People          Departments
------ -----------
pID pName deptID deptName
1 James 1 Engineering
2 Mary 2 Research
3 Paul 3 Marketing
4 Communications

People_Departments
------------------
pID deptID
1 1
1 2
2 2
2 4
3 1
3 2
3 3

我想要的是这个:

pName  deptName
James Engineering, Research
Mary Research, Communication
Paul Engineering, Research, Marketing

如果我使用下面的 SQL 对表执行简单的 LEFT JOIN,我将获得与一个人相关的几行:

SELECT people.pName,
departments.deptName
FROM people
LEFT JOIN people_departments ON people.pID=people_departments.pID
LEFT JOIN departments ON people_departments.deptID=departments.deptID

我尝试了 GROUP_CONCAT 的各种组合,但没有运气。

有什么想法可以分享吗?

最佳答案

    SELECT people.pName,
GROUP_CONCAT(departments.deptName SEPARATOR ', ') deptName
FROM people
LEFT JOIN people_departments
ON people.pID = people_departments.pID
LEFT JOIN departments
ON people_departments.deptID = departments.deptID
GROUP BY people.pID

输出:

+-------+----------------------------------+
| pName | deptName |
+-------+----------------------------------+
| James | Engineering, Research |
| Mary | Research, Communications |
| Paul | Engineering, Research, Marketing |
+-------+----------------------------------+
3 rows in set (0.00 sec)

关于mysql - 如何在 MySQL 的多对多关系中以逗号分隔的列表连接来自一个字段的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6809886/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com