【发布时间】:2016-12-17 20:56:11
【问题描述】:
我看到了餐桌产品和餐桌。每次客户查看产品时,都会在已查看表中为该产品添加一个条目。我想从产品表中检索所有产品的列表,并按查看次数的 desc 顺序对产品列表进行排序。注意,如果一个产品甚至没有被查看一次,那么在看到的表中将没有条目,并且该产品应放在列表顶部,然后是查看过一次、两次的产品,依此类推
SELECT products.product_id ,products.product_name , anon_1.seen_count
FROM products
LEFT OUTER JOIN (
SELECT seen.product_id , count(*) AS seen_count
FROM seen
GROUP BY seen.product_id
) AS anon_1 ON anon_1.product_id = products.product_id
ORDER BY anon_1.seen_count ASC;
我上面的查询将尚未查看的产品放在底部。我该如何解决? 我已经尝试过下降和上升。降序将观看次数最少的放在底部,升序将未观看的放在底部
【问题讨论】:
-
您不能拥有“按 desc 顺序排列的产品列表(按查看次数的顺序排列)”和“该产品应放在列表顶部,然后是产品已同时查看一次、两次等”
-
... ORDER BY anon_1.seen_count NULLS FIRSTLink -
MySQL(可能)或 Postgresql?
标签: mysql sql postgresql sqlalchemy