使用PHP对SQL结果进行双重排序
我用一个左连接来获得排名靠前的帖子,一个表中有排名靠前的帖子,另一个表中有帖子信息来获得最近两周发布的排名靠前4的帖子。我得到这些信息的方法就是按排名靠前的人排序。但是,我希望我的前4名结果不是按其排名voting.vote的顺序出现,而是按其发布日期条目的顺序出现。id。我不确定这样做的最佳方式是什么。下面是我的SQL语句,它当前用于显示时间范围内排名前4位的项目使用PHP对SQL结果进行双重排序,php,mysql,sql,sorting,Php,Mysql,Sql,Sorting,我用一个左连接来获得排名靠前的帖子,一个表中有排名靠前的帖子,另一个表中有帖子信息来获得最近两周发布的排名靠前4的帖子。我得到这些信息的方法就是按排名靠前的人排序。但是,我希望我的前4名结果不是按其排名voting.vote的顺序出现,而是按其发布日期条目的顺序出现。id。我不确定这样做的最佳方式是什么。下面是我的SQL语句,它当前用于显示时间范围内排名前4位的项目 $result = mysql_query("SELECT entries.permalink, entries.title, v
$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行结果按entries.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;
但是,我不希望我的前4名结果按它们的顺序出现
排名投票。投票,但按其发布日期的顺序
条目.id
试试这个:
SELECT *
FROM
(
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
) t
ORDER BY entries.id;
-- Or ORDER BY entries.published date;
我试过了,但仍然没有从查询中得到任何结果。还有别的想法吗?感谢mysql_querySELECT*FROM SELECT entries.permalink、entries.title、voting.vote FROM entries LEFT JOIN voting ON voting.id=entries.id其中entries.category如“%For Sale%”和date>=“$twoweeks”ORDER BY voting.vote DESC LIMIT 4 t ORDER BY entries.id;事实上,我找到了关于为什么一切都不起作用的答案。我还需要在我的内部SELECT中查询我的id号,以便在外部ORDER BY中使用。本质上,我只需要在内部select中添加entries.id。