我搜索了这么多,但是我还没找到任何合适的解决方案。我是开发人员,并且不熟悉SQL查询。请帮帮我。
该表由两个表用户&的LEFT JOIN生成。具有外键location_id的位置。
现在我希望它像下面那样..
答案 0 :(得分:0)
如果用户总共只有两个地址,那么您可以尝试这样的子查询:
SELECT
u.user_id,
u.full_name,
u.user_type,
(SELECT name FROM location WHERE id=u.location_id LIMIT 1) location,
(SELECT name FROM location WHERE id=u.location_id LIMIT 1 OFFSET 1) location_something
FROM user u
...
如果只找到一个地址, location_something 将为空。
答案 1 :(得分:0)
如果您不确定地点的数量,那么我认为我们无法获得“预期结果”'使用SQL查询。
答案 2 :(得分:0)
假设您已将连接结果保留在#SomeTable
中您可以选择
之类的结果SELECT
user_id, full_name, user_type,
STUFF((
SELECT ', ' + [location]
FROM #SomeTable
WHERE (user_id = Results.user_id)
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,2,'') AS Locations
FROM #SomeTable Results
GROUP BY user_id, full_name, user_type
并且在代码中的某处,您可以在每行中拆分“位置”列