我有一项任务要完成。有很多关系。桥牌表已经制作好像
left id right id
+----------+---------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
| 2 | 8 |
| 3 | 1 |
| 3 | 2 |
| 3 | 4 |
| 4 | 1 |
| 4 | 2 |
| 4 | 3 |
| 4 | 5 |
| 5 | 1 |
| 5 | 2 |
| 5 | 4 |
| 5 | 6 |
| 5 | 7 |
+----------+---------+
我必须在一行中显示左id =右id 例如
for left id 1
left1 | right1 righ 2
for left id 3
left3 | right1 right2 right 4
我该怎么做?我试过加入表,没有工作
答案 0 :(得分:0)
我认为您可以使用简单查询来使用GROUP BY和GROUP_CONCAT()
来实现此目的SELECT left_id, GROUP_CONCAT(right_id SEPARATOR ' ') as rigth_id
FROM left-right
GROUP BY left_id;
答案 1 :(得分:0)
这是GROUP_CONCAT()
和GROUP BY
的合理直接应用。 (http://sqlfiddle.com/#!9/ed7e1/2/0)
SELECT leftId,
GROUP_CONCAT(rightId ORDER BY rightId) rightIds
FROM bridge
GROUP BY leftId