3つのテーブル(photos、albums、album_photos)からデータを取得しようとしています。次に、プログラムはアルバムテーブルでユーザーのアルバムを検索し、album_photosで写真のIDをすべてのアルバムで検索し、IDごとに写真の表を見て、IDごとにすべてのデータを確認してください。
昨日、次のような質問をしました。3つのテーブルを使用した内部結合ですが、今は質問が違うと思います。どうすればリクエストに制限を追加できるのでしょうかinner join
。
だから、私は今このコードで働いています:
SELECT a.album_name, a.album_id, c.*
FROM albums a
INNER JOIN album_photos b ON a.album_id = b.album_id
INNER JOIN photos c ON b.photo_id = c.photo_id
WHERE (
SELECT COUNT(*)
FROM album_photos d
WHERE b.album_id = d.album_id
AND d.nick = :nick
) <=5
このコードは、写真が5枚以下のアルバムを選択します。コードにそのようなことをさせたくありません。アルバムに含まれる写真の数に関係なく、5枚の写真を制限してアルバムを表示したいと思います。
他の人からはできないと言われましたが、SQL言語は非常に複雑で、それを行うためのツールが必要だと思います。
これを適切な方法で行う方法はありますか?
*上記で共有しているリンクに、出力データの例を示します。