我正在一个带有图像和图像标签的网站上工作(à la Facebook)。图像在相册中。
DB结构的重要位如下
user: id INT
album: id INT, user_id INT
photo: id INT, album_id INT
tag: id INT, photo_id
给定用户 ID、相册 ID、该相册中的照片总数以及该相册中的总标签,我正在尝试让一个会返回的呼叫。
获取全部照片或全部标签都可以,但不能同时获取两者。在这种情况下,它会返回两次标签的总数。
以下是我的 SQL 调用:
SELECT album.id, COUNT(photo.id), COUNT(tag.id)
FROM album
LEFT OUTER JOIN photo ON (album.id = photo.album_id)
LEFT OUTER JOIN tag ON (photo.id = tag.photo_id)
WHERE album.user_id = 123 GROUP BY album.id
ORDER BY album.id DESC LIMIT 0,25
有什么想法我可以做得更好吗?