我试图找到一个有效的查询来查找“连接”表中的所有匹配对象。
Adopter
给定一个有 many的对象Pets
,并且通过连接表Pets
有很多。我怎么能找到所有相同的?Adopters
AdopterPets
Adopters
Pets
架构相当规范化,看起来像这样。
TABLE Adopter
INTEGER id
TABLE AdopterPets
INTEGER adopter_id
INTEGER pet_id
TABLE Pets
INTEGER id
现在,我正在使用的解决方案遍历所有Adopters
内容,并在我们有匹配项时随时询问他们的宠物并将其存储起来,以后可以使用它,但我确信必须有更好的使用 SQL 的方法。
我看过的一个 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
如果您再次询问Adopter with
id 2` 的相同问题,您将一无所获。
我希望这有助于澄清问题!