MySQL - UNION 2 表然后 ORDER BY

标签 mysql database union sql-insert join

我正在组合两个查询,并使用 UNION 来组合这两个结果集。

第一个查询:

SELECT * FROM (SELECT bsb.ID AS order_item_id, bsb.NAME AS order_item_name, 'line_item' AS order_item_type, bsb.ORDER_ID AS order_id 
  FROM b_sale_basket bsb 
   WHERE bsb.ORDER_ID IN (810, 255)
UNION

第二个查询:

SELECT bso.ID AS order_item_id, bsd.NAME AS order_item_name, 
'shipping' AS order_item_type, bso.ID AS order_id FROM b_sale_order bso 
 LEFT OUTER JOIN b_sale_delivery bsd ON bso.DELIVERY_ID = bsd.ID 
   WHERE bso.ID IN (255, 810)) order_union_result

这两个查询的结果很好,如下所示:

image

我尝试在第二个查询的末尾放置一个 ORDER BY 子句,以便在所有ordered_items 之后有一个SHIPMENT ROW 下面

UNION
SELECT bso.ID AS order_item_id, bsd.NAME AS order_item_name, 'shipping' AS order_item_type, bso.ID AS order_id
FROM b_sale_order bso
LEFT OUTER JOIN b_sale_delivery bsd ON bso.DELIVERY_ID = bsd.ID
WHERE bso.ID IN (255, 810)) order_union_result ORDER by bso.ID

但它提示我错误:#1054 - “order Clause”中的未知列“bso.ID”

结果应如下所示: http://i.stack.imgur.com/ZCfLk.png

注意:我想对行进行排序,以便在所有订购的商品都排完之后,它们下面有一个运输行

请帮助我。感谢您的帮助,非常感谢

最佳答案

使用order_id而不是bso.ID。这应该可以解决您的问题。

关于MySQL - UNION 2 表然后 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237644/

相关文章:

mysql - 使用beego登录网站

mysql - mysql错误

sql-server - 在 LEFT JOIN 表上使用 != 查询不返回任何结果

php - SQL 找不到不为空的字符串

sql - 创建一个 UNION 查询来标识唯一数据来自哪个表

php - Laravel,select 和 groupBy - DB::raw - 问题

mysql - 数据库查询未提取完整(或正确)信息

MYSQL - 如何获取每条记录的最大值?

sql - 如何合并 SQLite 中每个表的所有公共(public)列

sql - 在SQL中使用Union执行更新