所以我有一个表,其中每行可以通过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属于不同的合并。
答案 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