如何自己加入一个表来获取更多信息

时间:2012-09-24 16:21:01

标签: sql-server self-join

  

可能重复:
  Concatenate many rows into a single text string?
  How to use GROUP BY to concatenate strings in SQL Server?

我有一个表客户(id,person_id,帐号),id是主键。例如

id   person_id    account number
1    0001         acc00011
2    0001         acc00012
3    0002         acc00021

现在我想编写一个查询来自我加入表格以获取每个人的所有帐号。结果表应该是

person_id    account
0001         acc00011, acc00012
0002         acc00021

如何编写查询?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

使用correlated subquery FOR XML PATHGROUP BY进行连接。使用STUFF从结果中删除之前的逗号。

请参阅此处的示例:http://sqlfiddle.com/#!3/e5bd0/5