我在MySQL中有一个表需要分组。我检索销售订单多个商品已订购
我当前的数据库查询如下所示:
正如您所看到的,销售订单 255购买了2件商品,而销售订单 300购买了3件商品
问题:我需要在line_items字段中连接所有product_id及其价格或根据其order_id
列我想要的输出是这样的:
这是我使用的查询:
SELECT bsb.ORDER_ID AS order_id, bsb.PRODUCT_ID AS product_id, bsb.PRICE AS product_price, '' AS line_items
FROM bsb
INNER JOIN bso ON bso.ID = bsb. ORDER_ID
WHERE bsb.ORDER_ID in(255, 300)
请帮助我......
答案 0 :(得分:1)
您可以使用CONCAT
内的GROUP_CONCAT
来获得所需的结果集,但请记住GROUP_CONCAT
有一个默认的1024个字符可以连接,但可以通过{{{}}来增加3}}手动
SELECT bsb.ORDER_ID AS order_id,
GROUP_CONCAT(CONCAT('product_id: ',bsb.PRODUCT_ID,' | ',bsb.PRICE) SEPARATOR ';') AS line_items
FROM bsb
INNER JOIN bso ON bso.ID = bsb. ORDER_ID
WHERE bsb.ORDER_ID in(255, 300)
GROUP BY bsb.ORDER_ID