我有一个表,其中包含条目,另一个表中包含这些条目的已保存/收藏夹的ID。
我想获取其ID列在收藏夹中的条目,并按收藏夹表中的add_date对其进行排序。
SELECT * FROM entries WHERE id IN (SELECT favorite_id FROM favorites ORDER BY date_added)
此查询确实获得了正确的条目,但是没有正确地对它们进行排序。
如何在entries
列中订购favorites.added_date
?
答案 0 :(得分:2)
根据您的情况,您也可以将JOIN
与ORDER BY
一起使用。
SELECT E.*
FROM entries E
JOIN favorites F ON F.favorite_id = E.id
ORDER BY F.date_added ASC
答案 1 :(得分:1)
子查询的In子句等于内部联接..但(通常)更快
并且如果IN
子句中的子查询的排序依据没有意义,则内部联接允许您排序结果
SELECT *
FROM entries e
INNER JOIN favorites f ON e.id = f.favorite_id
order by f.date_added