mysql - 返回多行的 group_concat

标签 mysql sql

我有一个 orderLine 表,其中订单附加到产品。所以我的 orderLine 表可以如下所示:

orderID 作为外键耦合到 orderLineId。

orderID   productID
1         2
2         1
2         2

我的order表是这样的:

orderLineId      userID
1                 1
1                 1
2                 1

但是如果我执行 GROUP_CONCAT 查询:

SELECT orderLine.orderId,
       GROUP_CONCAT(orderLine.productId)
FROM orders
  INNER JOIN orderLine ON orders.orderLineId = orderLine.orderId
WHERE orders.orderId = 1

我得到结果:

orderId, GROUP_CONCAT(orderLine.productId)
1       1,2,2

但我想要:

orderId, GROUP_CONCAT(orderLine.productId)
1       1,2
2       2

最佳答案

您需要GROUP BY orderLine.orderId才能为每个orderId获取一行:

SELECT orderLine.orderId,
       GROUP_CONCAT(orderLine.productId)
FROM orders
  INNER JOIN orderLine ON orders.orderLineId = orderLine.orderId
WHERE orders.orderId = 1
GROUP BY orderLine.orderId

关于mysql - 返回多行的 group_concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994220/

相关文章:

mysql - 如何将两个 FK 从一个表连接到另一个表?

mysql - 在最高整数后添加新行

php - 使用 Magento 重新索引刚刚以编程方式更改的产品

mysql - LEFT JOIN 使用日期列的最新行

php - Mysql查询SUM字段字符串和分组依据

mysql - 优化包含重复查询作为子查询的 MySQL 查询?

sql - 更新部分 key

SQL:合并结果列

mysql - 如何在mysql中不使用字符 "SA-181"查找 "-"记录,即仅使用 "SA 181"

SQL FOR XML 帮助