php - mysql - 来自桥接表的多对多查询

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

我有一个任务要完成。存在多对多的关系。桥台已经制作完成,看起来像

    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

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

最佳答案

我认为您可以使用 GROUP BY 和 GROUP_CONCAT() 使用简单的查询来实现此目的

SELECT left_id, GROUP_CONCAT(right_id SEPARATOR ' ') as rigth_id 
FROM left-right 
GROUP BY left_id;

enter image description here

关于php - mysql - 来自桥接表的多对多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438977/

相关文章:

mysql - 错误代码 : 1055. SELECT 列表的表达式 #2 不在 GROUP BY 中

php - 我如何在 SELECT ... INTO OUTFILE 'result.csv' 后保存文件

MySQL删除同一张表中的重复项

MySQL - 两个查询之间的区别

Java - 只执行一次SQL查询

mysql - 解析MYSQL插入语句

mysql - 最近两个季度需要协助获得订单

php - 如何在 uploadify 中传递自定义值

php - 上传没有表格的文件

php - mysql 中是否有任何选项可以设置一列不应大于另一列