mysql - 来自桥接表的多对多查询[关闭]
Posted
技术标签:
【中文标题】mysql - 来自桥接表的多对多查询[关闭]【英文标题】:mysql - many to many query from bridge table [closed] 【发布时间】:2017-01-19 05:19:51 【问题描述】:我有一个任务要完成。有一个多对多的关系。桥表已经制作完成,看起来像
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
我该怎么做?我试过加入表格,不起作用
【问题讨论】:
见meta.***.com/questions/333952/… 【参考方案1】:我认为您可以使用 GROUP BY 和 GROUP_CONCAT() 使用简单的查询来实现此目的
SELECT left_id, GROUP_CONCAT(right_id SEPARATOR ' ') as rigth_id
FROM left-right
GROUP BY left_id;
【讨论】:
非常感谢。非常感谢您的帮助【参考方案2】:这是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
【讨论】:
完全按照我的回答:) 非常感谢。非常感谢您的帮助以上是关于mysql - 来自桥接表的多对多查询[关闭]的主要内容,如果未能解决你的问题,请参考以下文章