考虑一个包含两个ID的数据库表connectouser
:
connectouser
compID coopID
1 1
1 2
1 3
2 1
2 2
考虑另一个包含两个ID的数据库表coop
:
coop
ID Name
1 ABC
2 DEF
3 GHJ
我想要以下输出:
Result
compID coopname
1 ABC,DEF,GHJ
2 ABC,DEF
任何人都可以帮助我。
答案 0 :(得分:1)
这个问题被标记为MySQL这个答案。
这是一个分组和group_concat()
:
select cu.compId, group_concat(co.name order by co.id) as coopnames
from connectouser cu join
coop co
on cu.coopID = co.ID
group by cu.compId;
在SQL Server中,您可以执行以下操作:
select cu.compId,
stuff( (select ',' + co.name
from coop co
where cu.coopID = co.ID
order by co.id
for xml path ('')
), 1, 1, ''
) as names
from connectouser cu;
最新版本的SQL Server支持string_agg()
,这是一种更好的方法。