「結合」テーブルで一致するすべてのオブジェクトを見つけるための効率的なクエリを見つけようとしています。
Adopter
多くのオブジェクトがあり、結合テーブルを介して多くのオブジェクトがあるPets
とします。同じものをすべて見つけるにはどうすればよいですか?Pets
Adopters
AdopterPets
Adopters
Pets
スキーマはかなり正規化されており、次のようになります。
TABLE Adopter
INTEGER id
TABLE AdopterPets
INTEGER adopter_id
INTEGER pet_id
TABLE Pets
INTEGER id
現在、私が使用しているソリューションはすべてをループしAdopters
、一致するペットを保管して後で使用できるようになったらいつでもペットを要求しますが、SQL を使用するより良い方法が必要であると確信しています。
私が調べた 1 つの SQL ソリューションはGROUP BY
、この問題に対する適切なトリックではないようでした。
編集
私が探しているものをもう少し説明するために、例を挙げてみます。
+---------+ +------------------+ +------+
| Adptors | | AdptorsPets | | Pets |
|---------| +----------+-------+ |------|
| 1 | |adptor_id | pet_id| | 1 |
| 2 | +------------------+ | 2 |
| 3 | |1 | 1 | | 3 |
+---------+ |2 | 1 | +------+
|1 | 2 |
|3 | 1 |
|3 | 2 |
|2 | 3 |
+------------------+
あなたが同じものを持っている他のものをのAdopter
と一緒に尋ねたとき、あなたは返されます.id
1
Adopters
Pets
id 3
の に同じ質問をするAdopter
と、id
が3
得られid 1
ます。
id 2`の同じ質問をもう一度尋ねた場合、Adopter with
何も返されません。
これが問題を解決するのに役立つことを願っています!