これらのテーブルを考えると:
GroupA,
GroupB(with a FK to GroupA.Id),
GroupC (with a FK to GroupB.Id and Image.Id),
Image
ネストされた選択で各グループAをループし、FKが一致する最初のグループBを選択し、グループBの最初のグループCを選択してから、[画像]テーブルからフィールドを選択しようとして失敗しました。
これは、GroupAごとに以下を出力するWebページ用です。
<h2>GroupA.Title...
<img src=Images.ImageUrl...
ただし、そのためには、内部結合で画像を取得するトップグループCをプルするトップグループBをプルする必要があります。
ネストされた選択は前向きではないと確信しています(最初のネストされたステートメントは機能しますが、最初のネストされたステートメントの結果を使用する次のステートメントは機能しません)。誰かが私を正しい方向に向けることができますか?これを行う適切な方法があると確信しています。
編集:サンプルデータ構造
GroupA {GroupAId,Title}
GroupB {GroupBId,FKGroupAId}
GroupC {GroupCId,FKGroupBId, FKImageId}
Image {ImageId,ImageUrl}
だから....もしそれらが別々のクエリだったら私は
GroupAから*を選択し、GroupAをループして、GroupB.FKGroupAId=GroupA.GroupAId;である単一のトップ1GroupBを選択します。
次に、トップ1のグループCを選択します。ここで、GroupC.FKGroupBID = GroupB.GroupBIdであり、Imageに内部結合があります。
これは、取得したいGroupA画像ごとに2つの選択=多すぎます。