Php SQL-MySql按投票数量选择排名前10的帖子

Php SQL-MySql按投票数量选择排名前10的帖子,php,mysql,sql,Php,Mysql,Sql,我有两个表,一个用于图像记录(post),另一个用于likes记录。所以我做了一个从一个表到另一个表的内部连接,因为我需要选择图像以及该特定图像的喜欢程度。但我也需要按喜欢的数量来订购,这样我就可以在网站上制作投票最多的前10张图片,所以我的查询如下: SELECT COUNT(DISTINCT B.votes), A.id_image, A.image, A.title FROM likes_images AS B INNER JOIN images AS A ON A.id_

我有两个表,一个用于图像记录(post),另一个用于likes记录。所以我做了一个从一个表到另一个表的内部连接,因为我需要选择图像以及该特定图像的喜欢程度。但我也需要按喜欢的数量来订购,这样我就可以在网站上制作投票最多的前10张图片,所以我的查询如下:

SELECT
  COUNT(DISTINCT B.votes),
  A.id_image,
  A.image,
  A.title
FROM likes_images AS B INNER JOIN images AS A ON A.id_image = B.id_image
GROUP BY A.title
ORDER BY COUNT(DISTINCT B.votes) ASC
LIMIT 10
它是有效的,但它只是按标题(字母顺序)对图像进行排序。我想从投票最多的人到投票较少的人


有什么想法吗?

在大多数SQL实现中,
groupbycriteria
意味着任何
orderby
子句都将被忽略,以支持
criteria

所以你可以试试这个:

SELECT L.id_image, A.image, A.title,
  * FROM (
    SELECT COUNT(votes) AS likes, id_image
    FROM likes_images
    GROUP BY id_image
  ) AS L
JOIN images B ON B.id_image = L.id_image
ORDER BY L.likes DESC
LIMIT 10

请注意,我将
ORDER BY
设置为
DESC
(因为您想要前10名,我不明白您选择了
ASC