我有一个MySQL数据库查询,可以从 sales_order_table中检索订购商品。该脚本会返回产品及其数量。每个数量下方都会显示产品ID。
当前查询的输出如下所示:
问题:带有蓝色突出显示费用的行必须位于所有订购产品的下方
我想要实现的最终输出必须如下所示:
我使用的代码是:
SET @origin=0;
SELECT order_item_id, meta_key, meta_value, row, origin FROM (
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_qty' AS meta_key, bsb.QUANTITY AS meta_value, @a:= @a + 1 AS row, @origin:= @origin +1 AS origin
FROM bsb,(SELECT @a:=0) t
WHERE bsb.ORDER_ID IN (300)
UNION
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_product_id' AS meta_key, bsb.PRODUCT_ID AS meta_value, @b:= @b + 1 AS row, @origin:= @origin +1 AS origin
FROM bsb, (SELECT @b:=0) t
WHERE bsb.ORDER_ID IN (300)
UNION
SELECT '' AS meta_id, bso.ID AS order_item_id, 'cost' AS meta_key, 0 AS meta_value, @j:= @j + 1 AS row, @origin:= @origin +1 AS origin
FROM bso, (SELECT @j:=1) t
WHERE bso.ID IN (300)
) sales_order_meta ORDER BY row, origin
请帮助我..
答案 0 :(得分:1)
将ORDER BY
子句更改为:
ORDER BY order_item_id, meta_key = 'cost', row, origin
meta_key = 'cost'
1
行为cost
,所有其他行为0
。