2016-02-13 67 views
0

我已经搜索了很多,但我还没有找到任何合适的解决方案。我是开发人员,对sql查询没有深入的了解。请帮帮我。加入除了一个以外的所有重复值的两行单表?

该表格由两个表用户&的位置与外键location_id的LEFT JOIN生成。

getting this

现在,我想这是类似下面..

expecting this

+0

查询拆分中“位置”栏代码请 –

+0

我会有助于发布您的数据库表,以便我们可以尝试并帮助您查询。 – Garbit

回答

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将为空。

0

如果你不确定位置的数量,那么我认为我们不能用SQL查询得到'预期结果'。

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 

,比某处进一步在你的代码中的每一行

相关问题