SQL - 选择列表列表

时间:2014-01-05 15:15:21

标签: mysql sql sql-server

所以我有一个表,其中每行可以通过merge_id合并或不合并。

很容易跳入并获取所有合并的行,其中merge_id列不为null。问题是我想在客户端的一个容器中输出合并的行。

我有什么办法让sql返回合并集合的集合? 我是按合并ID的升序排序还是信任它的顺序?

修改

 ________________________________________________
|id   | firstname      | lastName    |  merge_id |
|------------------------------------------------|
| 1   |   jane         |   Doe       |     1     |
-------------------------------------------------|
|------------------------------------------------|
| 2   |    John        |   Doe       |       1   |
-------------------------------------------------|
|------------------------------------------------|
| 3  |   max           |    payne    |     2     |
-------------------------------------------------|
|------------------------------------------------|
| 4   |   sub          |      zero   |      3    |
--------------------------------------------------

所以我想以这样的方式查询,我知道jane和max属于不同的合并。

1 个答案:

答案 0 :(得分:1)

怎么样

SELECT firstname, lastname, merge_id 
FROM table t
ORDER BY t.merge_id

那会给你一个人的记录,merge_id将是升序的:

1 | Jane Doe 
1 | John Doe
2 | max payne
3 | sub zero

否则,您可以使用GROUP_CONCAT:

SELECT merge_id , GROUP_CONCAT(CONCAT(firstname, ' ', lastname))
FROM table t
GROUP BY t.merge_id
ORDER BY t.merge_id

每个merge_id会给出一条记录:

1 | Jane Doe, John Doe
2 | max payne
3 | sub zero