【问题标题】:mysql - many to many query from bridge table [closed]mysql - 来自桥接表的多对多查询[关闭]
【发布时间】: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

我该怎么做?我试过加入表格,不起作用

【问题讨论】:

标签: php mysql group-by many-to-many aggregate-functions


【解决方案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

【讨论】:

  • 完全按照我的回答:)
  • 非常感谢。非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多