我有一个包含三个表的数据库:USERS
PHOTOS
LIKES
基本大纲如下:
USERS:
user_id
name
PHOTOS:
photo_id
title
url
user_id
LIKES:
user_id
photo_id
我想要做的是让用户喜欢很多照片并拥有很多用户喜欢的照片。
显然,我想按喜欢的数量来排序这些照片,我可以用 aJOIN
和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