gpt4 book ai didi

MySQL LEFT JOIN 表中的多行

转载 作者:行者123 更新时间:2023-11-29 12:22:01 24 4
gpt4 key购买 nike

下表是一个示例表结构。

我试图编写的查询类似于:

SELECT * FROM jobs LEFT JOIN assigned ON jobs.id = assigned.job_id;

但是,正如您所看到的,在作业 100 的情况下,左连接将产生多个匹配项,但上述查询只会返回一个匹配项。

是否可以将结果连接成左连接的逗号分隔字符串?

如果可能的话,更进一步是,是否可以用连接的逗号分隔字符串中的 users.name 列替换signed.user_id。

用户

╔═══╦════════════╦═════════════╗
║ ║ id ║ name ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 1 ║ Matt ║
║ 2 ║ 2 ║ Phil ║
║ 3 ║ 3 ║ Chris ║
╚═══╩════════════╩═════════════╝

职位

╔═══╦════════════╦═════════════╗
║ ║ id ║ name ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 100 ║ Do this ║
║ 2 ║ 101 ║ Do that ║
║ 3 ║ 102 ║ And this ║
╚═══╩════════════╩═════════════╝

已分配

╔═══╦════════════╦═════════════╗
║ ║ user_id ║ job_id ║
╠═══╬════════════╬═════════════╣
║ 1 ║ 1 ║ 100 ║
║ 2 ║ 2 ║ 100 ║
║ 3 ║ 1 ║ 101 ║
╚═══╩════════════╩═════════════╝

最佳答案

SELECT jobs.id,
jobs.name,
GROUP_CONCAT( users.name order by users.name) as workersOnTheJob
FROM
jobs
LEFT JOIN assigned
ON jobs.id = assigned.job_id
LEFT JOIN users
on assigned.user_id = users.id
group by
jobs.id,
jobs.name

关于MySQL LEFT JOIN 表中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28867776/

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