SQL将多行合并到一列中,并从Ids获取名称
考虑一个包含两个ID的数据库表连接器:SQL将多行合并到一列中,并从Ids获取名称,sql,sql-server,string-concatenation,Sql,Sql Server,String Concatenation,考虑一个包含两个ID的数据库表连接器: connectouser compID coopID 1 1 1 2 1 3 2 1 2 2 coop ID Name 1 ABC 2 DEF 3 GHJ 考虑另一个包含两个ID的数据库表coop: connectouser compID coopID 1 1 1
connectouser
compID coopID
1 1
1 2
1 3
2 1
2 2
coop
ID Name
1 ABC
2 DEF
3 GHJ
考虑另一个包含两个ID的数据库表coop:
connectouser
compID coopID
1 1
1 2
1 3
2 1
2 2
coop
ID Name
1 ABC
2 DEF
3 GHJ
我希望获得以下输出:
Result
compID coopname
1 ABC,DEF,GHJ
2 ABC,DEF
有人能帮我一下吗。这个问题的答案是MySQL 这是一个group by和group_concat: 在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的最新版本支持字符串\u agg,这是一种更好的方法。它显示错误组\u联系人不可识别,这是sqlJust中的内置函数复制并粘贴SQL@HatimRanapurwala。。该函数名为group_concat not group_contacts抱歉,输入错误,显示错误group_concat未被识别为SQL中的内置函数,或者您使用的是非常旧的MySQL版本,或者根本没有MySQL,我相信更可能是@HatimRanapurwala。。。因为在我看来,sql中的内置函数类似于sql Server错误消息