私は画像と画像上のタグがあるサイトで作業しています(àlaFacebook)。画像はアルバムにあります。
DB構造の重要な部分は次のとおりです
user: id INT
album: id INT, user_id INT
photo: id INT, album_id INT
tag: id INT, photo_id
user_id、アルバムID、そのアルバムの写真の総数、およびそのアルバムのタグの総数が与えられた場合に返される呼び出しを機能させようとしています。
写真の合計またはタグの合計のいずれかを取得できますが、両方を取得することはできません。その場合、タグの総数を2回返します。
以下は私の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
どうすればこれをより良くすることができるかというアイデアはありますか?