我正在使用 LEFT JOIN 获得排名靠前的帖子(排名在一个表中,在另一个表中发布信息)以获得过去两周发布的排名前 4 位的帖子。我能够获得这些信息的方式只是按最高排名排序。但是,我希望我的前 4 个结果不按排名顺序 (voting.vote),而是按发布日期 (entries.id) 顺序显示。我不确定这样做的最佳方法是什么。下面是我的 SQL 语句,目前用于显示时间范围内排名前 4 的项目。
$result = mysql_query("SELECT entries.permalink, entries.title, voting.vote FROM entries LEFT JOIN voting ON voting.id = entries.id WHERE date>='$twoweeks' ORDER BY voting.vote DESC LIMIT 4");
有没有一种方法可以让 4 行结果按 entry.id 排序,还是我需要在 php 外部使用数组等进行此操作?
下面的编辑是从评论中提取的信息的解决方案。
SELECT *
FROM
(
SELECT
entries.permalink,
entries.title,
voting.vote,
entries.id
FROM entries
LEFT JOIN voting ON voting.id = entries.id
WHERE date>='$twoweeks'
ORDER BY voting.vote DESC
LIMIT 4
) t
ORDER BY id;