gpt4 book ai didi

mysql - group_concat 中带有 IN 子句的子查询

转载 作者:行者123 更新时间:2023-11-29 05:22:45 25 4
gpt4 key购买 nike

tbl_a

id  dept_id
1 1,2,3
2 2,3
3 1

tbl_b

dept_id  dept
1 a
2 b
3 c

我的查询:

SELECT id, (SELECT GROUP_CONCAT(dept)  FROM tbl_b
WHERE tbl_b.dept_id IN (tbl_a.dept_id)) as departments
FROM tbl_a

这只返回 tbl_a.dept_id 的第一个值。我想要一个结果。

id      departments
1 a,b,c
2 b,c
3 a

最佳答案

首先,如果可以更改结构,那么 normalize它,使用以一对多关系存储表 a 的 ID 和表 b 的 ID 的联结表,如果您不能更改架构,则可以使用 find_in_set

select a.id,group_concat(b.`dept` order by b.`dept`) departments
from a
join b on(find_in_set(b.dept_id,a.dept_id) > 0)
group by a.id

Demo

关于mysql - group_concat 中带有 IN 子句的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23774657/

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