Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL将多行合并到一列中,并从Ids获取名称_Sql_Sql Server_String Concatenation - Fatal编程技术网

SQL将多行合并到一列中,并从Ids获取名称

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

考虑一个包含两个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         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错误消息