0

テーブルからアイテムを表示し、いいねの数で並べ替えようとしています。同類は別のテーブルにあり、それは私を混乱させます。最初のテーブルimagesは次のようになります。

images

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

2 つ目の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

私の問題を解決していただければ幸いです。

4

2 に答える 2

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)
于 2013-01-20T19:42:39.397 に答える
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画像の URL 、いいねorderedの数をdescending順番に選択します。

于 2013-01-20T19:44:01.287 に答える