返回包含多行

时间:2015-10-07 13:58:01

标签: 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

1 个答案:

答案 0 :(得分:1)

您需要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