一列应包含另一个表中的多行



id emp
1 jon
2 jane


id部门
1小时
2销售


emp_id dept_id
1 1
2 1
2 2


结果
员工部门
jon ___小时
jane __小时,销售

我有员工表、部门表和桥牌表。

如何编写查询,以便如果员工在多个部门,则以逗号分隔的1列形式显示?

您可以连接这三个表,按员工聚合,并用group_concat():连接每个员工的部门

select e.emp, group_concat(d.dept) as depts
from emp e
inner join emp_dept ed on ed.emp_id = e.id
inner join dept d on d.id = ed.dept_id
group by e.id

相关内容

最新更新