我如何通过喜欢订购?

时间:2013-01-20 19:40:10

标签: mysql sql-order-by

我正在尝试显示表格中的项目,并按喜欢的次数排序。喜欢在另一张桌子上,这让我很困惑。第一个表images如下所示:

images

id   url
1    blablabla.jpg
2    hejhej.png
3    picture.jpg

第二个likes看起来像这样:

likes

id   image
1    2
2    2
3    1
4    3
5    2

现在我希望大多数人喜欢这些图片。我在查询中写什么来使它看起来像这样?:

hejhej.png - 3 likes
blablabla.jpg - 1 like
picture.jpg - 1 like

如果你能解决我的问题,我真的很感激。

2 个答案:

答案 0 :(得分:1)

SELECT url, COUNT(likes.id) as likes
FROM images, likes
WHERE likes.image = images.id
GROUP BY images.id
ORDER BY likes DESC

要仅获取过去24小时内的记录,请将其添加到您的查询中:

WHERE likes.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

答案 1 :(得分:0)

SELECT 
    url,
    COUNT(likes.id) Likes
FROM
    images,
    likes
WHERE
    likes.image = images.id
GROUP BY
    images.url
ORDER BY
    Likes DESC

您可以按FROM顺序选择grouped by两个表格,ordered图片网址和descending相似数量。