获取所有产品,并将特定订单的产品放在首位
Posted
技术标签:
【中文标题】获取所有产品,并将特定订单的产品放在首位【英文标题】:Get all the products, and putting a specific order's product first 【发布时间】:2014-11-16 12:28:17 【问题描述】:我有 3 个表:products、orders 和 orderLines(order_id, product_id)。
我有一个 sql 查询来找出在 only one query
中似乎几乎不可能做到的事情。
有没有办法只在一个查询中:
order A
:首先显示product1
、product2
.. 出现在orderA's orderLines
中,然后接下来显示following products
(未排序)。
PS:
我知道可以通过两个查询的union
来实现这一点,但最好在only one query
中完成。
【问题讨论】:
【参考方案1】:您可以在order by
子句中放置一个子查询。在这种情况下,您需要一个 exists
子查询:
select p.*
from products p
order by (exists (select 1
from orderlines ol
where p.productid = ol.productid and o.orderid = ORDERA
)
) desc;
【讨论】:
以上是关于获取所有产品,并将特定订单的产品放在首位的主要内容,如果未能解决你的问题,请参考以下文章