MySql查询3个不同的表

时间:2017-08-07 22:51:41

标签: mysql

我有3张桌子。

所有者:

ownerID name
   1    josh

宠物:

petID name
  1    M
  2    x
  3    f
  4    h

PetsOwners:

petID  ownerID
  1       1
  3       1
  4       1

我有一个从一个人返回ownerID的查询。 " SELECT ownerID FROM Owners WHERE name =' josh';"这将返回ownerID = 1.我需要一个返回josh拥有的所有宠物的查询。在这种情况下,将是" m"," f"和" h"根据petsOwners表。

3 个答案:

答案 0 :(得分:0)

如果您ownerId使用

 SELECT p.name
 FROM Pets  p
 JOIN PetsOwners po
   ON p.petID = po.petID
 WHERE po.ownerID = 1

如果您只拥有所有者名称,则需要加入所有3个表

 SELECT p.name
 FROM Pets  p
 JOIN PetsOwners po
   ON p.petID = po.petID
 JOIN Owners o
   ON po.ownerID = o.ownerID
 WHERE o.name = 'josh'

答案 1 :(得分:0)

如果你只想要他们的名字:

SELECT Pets.name 
FROM Pets, PetsOwners, Owners
WHERE Pets.petID = PetsOwners.petID 
AND Owners.ownerID = PetsOwners.ownerID;

答案 2 :(得分:0)

试试这个:

</div>