我有一个表 products
,其中包含产品的 id 和 name。
第二个表是 products_last_usage
,我在其中保存了 product_id、user_id 和 last_used_at。
每当用户点击产品时,我都会更新字段 last_used_at。
现在,我需要一个查询来列出所有 产品,并首先按 last_used_at 排序,然后按产品名称排序。它必须是每个用户。即每个用户都有自己的表格顺序。
但我需要所有产品,即使第二个表中没有它们的记录。
怎么做?
你可以帮我做一个rails查询或者mysql查询。
最佳答案
您可以使用左连接
:
select p.*
from products p left join
products_last_usage plu
on plu.product_id = p.id and plu.user_id = $user_id
order by (last_used_at is not null) desc, last_used_at desc;
按 last_used_at desc
排序也应该有效。但是,我认为显式处理 NULL
值会更清楚。
关于mysql - 查询一个表中的所有项目,但按另一个不包含所有项目的表排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45034486/