按照另一张表的订单订购产品

问题描述 投票:0回答:2

我的查询是:

SELECT * 
  FROM sold_car 
 WHERE cat_id IN (SELECT * 
                    FROM category 
                ORDER BY cat_id DESC)

但结果显示在随机排序的类别中。为什么嵌套查询没有排序?它是Postgresql 9.6的属性吗?

sql postgresql
2个回答
3
投票

这是做你想做的事的正确方法:

SELECT sc.* 
  FROM sold_car sc 
        INNER JOIN category c 
           ON sc.cat_id = c.cat_id
ORDER BY c.cat_id DESC

您当前的查询不是订购或过滤,因为@jarlh问“类别表只有一列吗?”这是因为要使用IN你应该匹配列,所以它应该是cat_id in (select cat_id from.....

此外,子查询排序对外部查询排序没有影响,因此您应该对外部查询进行排序。


1
投票

就像是:

select *
from sold_car
where cat_id in
    (select cat_id from catagory) 
order by cat_id desc;

应该做的伎俩。

© www.soinside.com 2019 - 2024. All rights reserved.