我有桌子:post&票 我想对表中的帖子进行排序' post'通过表格中的列数'投票'。
SELECT * FROM post ORDER BY <SELECT count(*) as c FROM votes WHERE post = $row[srno]>
&#39;投票&#39;表包含2列:post和user;它旨在存储“帖子”中存在的每个帖子的投票。表
SELECT count(*) as c FROM votes WHERE post = $row[srno]
上面的查询给了我号码。投票的指定职位。我如何按此计数对帖子进行排序?
答案 0 :(得分:0)
也许你们都可以从一张桌子上获得投票:
SELECT COUNT(post) as c, post
FROM votes
GROUP BY Country
ORDER BY post ASC;
答案 1 :(得分:0)
您可以使用JOIN
:
SELECT p.*, COUNT(*) as vcount
FROM post p
JOIN votes v ON v.post = p.srno
GROUP BY p.*
ORDER BY vcount
这也会在包含投票数的表格中添加一列vcount
。
请注意,此查询将按升序顺序排序,以便首先获得最低票数。您可以使用DESC
按降序顺序排序(因此最高票数):
SELECT p.*, COUNT(*) as vcount
FROM post p
JOIN votes v ON v.post = p.srno
GROUP BY p.*
ORDER BY vcount DESC