私は3つのテーブルのデータベースを持っています:USERS
PHOTOS
LIKES
そして基本的なアウトラインは次のようになります:
USERS:
user_id
name
PHOTOS:
photo_id
title
url
user_id
LIKES:
user_id
photo_id
私がやりたいことは、ユーザーが多くの写真を好きになり、多くのユーザーに写真を気に入ってもらえるようにすることです。
明らかに、これらの写真をいいねの数で並べたいと思いますJOIN
。COUNT()
私が理解できないことは、各写真の「いいね」の数を返すことです。どうすればいいですか?
私の現在のSQLは次のとおりです。
SELECT
photos.photo_id,
photos.title,
photos.url,
users.name
FROM photos
LEFT OUTER JOIN users
ON users.user_id = photos.user_id
LEFT OUTER JOIN likes
ON likes.photo_id = photos.photo_id
GROUP BY likes.photo_id
ORDER BY COUNT(*) DESC
LIMIT 20