我有两个表users_tbl
和images
tbl。
每个用户可以拥有多个图像。
我试图选择所有用户并将用户图像连接到一行
示例:
用户 tbl
user_id user_name
--------------------
1 david
2 tarik
图片 tbl
image_id user_id image_url
-------------------------------
1 1 "image 12312 url"
2 1 "image 123 url"
3 1 "image 313 url"
4 1 "image 212 url"
5 2 "my image url"
5 2 "my image url2"
我需要一条返回以下结果的选择语句:
user_id image_url
----------------------------------------------------------------------
1 "image 12312 url ,image 123 url,image 313 url,image 212 url"
2 "my image url , my image url2"
答案 0 :(得分:1)
在SQL Server 2012中,您将使用for xml path
:
select u.*,
stuff( (select ', ' + i.image_url
from images i
where i.user_id = u.user_id
for xml path ('')
), 1, 2, ''
) as image_urls
from users u;
编辑:
如果您希望逗号结尾,请省略stuff()
并使用:
select u.*,
(select i.image_url + ', '
from images i
where i.user_id = u.user_id
for xml path ('')
) as image_urls
from users u;
答案 1 :(得分:0)
SELECT [users].[user_id], [images].[image_url]
FROM [images]
INNER JOIN [users] ON
[users].[user_id] = [images].[user_id]
然后使用此结果链接here.