gpt4 book ai didi

mysql - 为多个一对多/一对多表构建 GROUP_CONCAT 的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 22:20:16 27 4
gpt4 key购买 nike

我有四个表,personemailorganperson_organ 以及:

  • personemail 具有一对多关系;
  • personorgan通过person_organ建立多对多关系。

问题,如何编写查询,以便我有一组包含以下人员的列全名所有电子邮件所有器官特定的器官?

据我所知,使用GROUP_CONCAT来合并按人员分组的电子邮件:

select person.id as 'ID', 
organ.short_name as 'Organ',
CONCAT ( person.first_name, ' ', person.last_name) as 'Full Name',
GROUP_CONCAT(email.email SEPARATOR ', ') as 'Emails'
from person
left join person_organ on person.id = person_organ.person_id
join organ on organ.id = person_organ.organ_id
join email on email.person_id = person.id
where person_organ.organ_id = 1
group by person.id;

我可以在上面的查询中添加什么,以便添加另一列来显示此人所属的所有组?

到目前为止我所拥有的:

+----+-------+--------------+----------------------------+
| ID | Organ | Full Name | Emails |
+----+-------+--------------+----------------------------+
| 1 | SC | John Doe | john@doe.me, jdoe@mail.org |
| 2 | SC | Richard Rowe | rowe@mail.us |
| 3 | SC | San Zhang | zhangsan@mail.cn |
| 4 | SC | Taro Yamada | yamada@mail.jp |
+----+-------+--------------+----------------------------+

我想要的是,除了单数 Organ 字段之外,将 Organs 作为上述结果集的附加列:

+----+-------+--------------+----------------------------+------------+
| ID | Organ | Full Name | Emails | Organs |
+----+-------+--------------+----------------------------+------------+
| 1 | SC | John Doe | john@doe.me, jdoe@mail.org | SC, EC |
| 2 | SC | Richard Rowe | rowe@mail.us | SC, EC, HR |
| 3 | SC | San Zhang | zhangsan@mail.cn | SC, HR |
| 4 | SC | Taro Yamada | yamada@mail.jp | SC, EC, HR |
+----+-------+--------------+----------------------------+------------+

非常感谢您的回答!我对制作实际应用程序还很陌生,我觉得这应该是一项相当常见的任务。非常欢迎任何有关指向正确资源的帮助!

-- 更新:SQLfiddle 链接:http://www.sqlfiddle.com/#!9/bc08de/40

最佳答案

http://www.sqlfiddle.com/#!9/bc08de/14/0我不太了解 MySQL 中的语法,但我已经尝试过并得到了这个结果。为 1 的 id 有重复。也许是因为某些语法。看看吧已经得到了想要的结果。

关于mysql - 为多个一对多/一对多表构建 GROUP_CONCAT 的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30796077/

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