首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL - UNION和ORDER/SORT行

MySQL - UNION和ORDER/SORT行
EN

Stack Overflow用户
提问于 2014-08-18 07:11:30
回答 1查看 61关注 0票数 1

我正在使用MySQL的UNION特性检索表结果/s。该表基本上包含来自sales order有序项

下面是我使用的查询:

代码语言:javascript
复制
SET @meta_id=0; 
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_product_id' AS meta_key, bsb.PRODUCT_ID AS meta_value, 1 AS origin
FROM b_sale_basket bsb
WHERE bsb.ORDER_ID = 255
UNION
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_qty' AS meta_key, bsb.QUANTITY AS meta_value, 2 AS origin
FROM b_sale_basket bsb
WHERE bsb.ORDER_ID = 255
) sales_order_meta 

上面的first查询检索具有255ordered

第二个查询在上检索每个产品订购数量

Side :如果您问我为什么这样查询它们,因为它们都属于同一个表,这是因为我试图检索它们,就像woocommerce对其订购的项所做的那样.

上面查询的输出如下所示:

http://i.stack.imgur.com/qPsjv.png

但是,我想订购结果,使在每个产品订购的下面有一个数量,每个产品订购的低于

我想要的最终结果如下所示:http://i.stack.imgur.com/wx6Aw.png

请帮帮我..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-18 07:20:20

您可以使用用户定义的变量为每个查询提供一个秩,因此第一行查询1的秩为1,同样,第二次查询的第一行的秩为1,然后是2 ,3,等等,然后将结果按该行编号排序。

代码语言:javascript
复制
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_product_id' AS meta_key, bsb.PRODUCT_ID AS meta_value, 1 AS origin
,@r:= @r +1 AS `row`
FROM b_sale_basket bsb,(SELECT @r:=0) t
WHERE bsb.ORDER_ID = 255
UNION
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_qty' AS meta_key, bsb.QUANTITY AS meta_value, 2 AS origin
,@r:= @r +1 AS `row`
FROM b_sale_basket bsb,(SELECT @r:=0) t
WHERE bsb.ORDER_ID = 255
ORDER BY `row`

编辑

您也可以尝试ORDER BY order_item_id,meta_key

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25357975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档