JOIN 2表SQL Server与

时间:2015-05-21 05:16:49

标签: sql sql-server

我这里有问题。

我有两张桌子要加入group by.

tbl_1
NO userID users status branchID
 1   1   abc   ok      2
 2   2   da    ok      1
 3   3   fe     ok     3
4    1   abc    ok     1
5    3   fe     ok      2

tbl_2
branchID   branch
2           medan
1           jakarta
3           batam

我需要根据branchID显示用户和分支,我认为这将使用group by。怎么做?

我希望输出不是重复的用户显示,什么时候选择。

output
user   branch
abc    medan,jakarta
fe     medan,batam

由于

3 个答案:

答案 0 :(得分:2)

这不是非常优雅,但会根据您的数据和输出完成工作

SELECT DISTINCT Users,
            STUFF(( 
                    SELECT ', ' + branch
                      FROM(
                    SELECT DISTINCT Users,
                                    branch
                      FROM #tbl_1 t1
                           INNER JOIN #tbl_2 t2 ON t1.branchID = t2.branchID ) A
                      WHERE A.users = T.users
                      FOR XML PATH( '' )),1,2,'' ) AS Branches
FROM #tbl_1 T;

答案 1 :(得分:0)

试试这个:

  select t1.users , t2.branch
  from tbl_1 t1 inner join tbl_2 t2
  on t1.branchID=t2.branchID
  group by t1.users , t2.branch;

答案 2 :(得分:0)

select distinct tbl_1.userID, tbl_1.users, tbl_1.status, tbl_1.branchID, tbl_2.branch
from tbl_1
left join tbl_2
on tbl.branchID = tbl_2.branchID

这只会显示所有具有不同价值的字段。