我有一个成员系统中两个表的数据如下:
Table: listuser
userid listid
===========
1 5
1 8
1 3
2 5
2 3
3 4
4 4
5 3
6 4
Table: list
id name
==============
3 Members
4 Non Members
5 Subscribers
8 Test
我想要达到的结果如下:
userid lists
===================
1 Members, Subscribers, Test,
2 Members, Subscribers
3 Non Members,
4 Non Members,
5 Members,
6 Non Members,
用户可以属于0到n个列表。 我已经尝试了很多方法,但总是最终有多行用于userid,这是我想要消除的。我会非常满意地提供一些帮助。
答案 0 :(得分:3)
试试这个。它会帮助你
SELECT DISTINCT lu2.userid,(
SELECT ISNULL(l1.name, '') + ', '
FROM dbo.listuser lu1 JOIN dbo.list l1 ON lu1.listid = l1.id
WHERE lu1.userid = lu2.userid
FOR XML PATH('')) AS name
FROM dbo.listuser lu2
ORDER BY lu2.userid
上的示例