如何根据另一个表中的数据对从一个表中选择的数据进行排序?

时间:2017-04-12 18:47:30

标签: php mysql select

我有桌子: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]

上面的查询给了我号码。投票的指定职位。我如何按此计数对帖子进行排序?

2 个答案:

答案 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