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 - 来自桥接表的多对多查询[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

来自两个多对多表的MYSQL搜索查询优化

没有连接表的多对多映射

hibernate关联关系(多对多)

mysql表的一对一/一对多/多对多联系

多维数据集设计 - 带有附加列的多对多映射的桥接表

针对标签上的多对多连接优化 MySQL 查询