从另一张表的订单

时间:2017-12-20 14:11:23

标签: sql postgresql

我的查询是:

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

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

类似的东西:

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

应该这样做。