我已经搜索了很多,但我还没有找到任何合适的解决方案。我是开发人员,对sql查询没有深入的了解。请帮帮我。加入除了一个以外的所有重复值的两行单表?
该表格由两个表用户&的位置与外键location_id的LEFT JOIN生成。
现在,我想这是类似下面..
我已经搜索了很多,但我还没有找到任何合适的解决方案。我是开发人员,对sql查询没有深入的了解。请帮帮我。加入除了一个以外的所有重复值的两行单表?
该表格由两个表用户&的位置与外键location_id的LEFT JOIN生成。
现在,我想这是类似下面..
如果总是有一个用户,那么你可以尝试这样的子查询最多只有两个地址:
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将为空。
如果你不确定位置的数量,那么我认为我们不能用SQL查询得到'预期结果'。
假设你已经离开加入结果#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
,比某处进一步在你的代码中的每一行
查询拆分中“位置”栏代码请 –
我会有助于发布您的数据库表,以便我们可以尝试并帮助您查询。 – Garbit