如果我有三个表格,例如dog
,cat
和animal
,其中animal
的属性为name
,我该如何加入{ {1}}和dog
并返回两个名字?
结构看起来像这样:
cat
我想在ChasesID上加入---Dog---
AnimalID char(9)
ChasesID char(9)
---Cat---
AnimalID char(9)
--Animal--
AnimalID char(9)
Name char(20)
和Dog
(在Cat表中引用AnimalID),并从Cat
返回两个动物的名称。
答案 0 :(得分:0)
你需要两个连接:
select ad.name as dogname, ac.name as chases
from dog d join
animal ad
on d.animalid = ad.animalid join
animal ac
on d.chasesid = ac.animalid;
据我所知,cat
表格是多余的。它没有单独的ID,因此您不需要它。您可以直接从animal
获取名称。
答案 1 :(得分:0)
您可以在三个表格上创建一个简单的连接。
select c.column1,c.column2 , d.column1 , a.column1 from cat c, dog d, animal a where c.ChasesID = d.ChasesID and c.AnimalID = a.AnimalID;
答案 2 :(得分:0)
我不确定你打算用这种方式做什么,但是如果你只想得到动物的名字,你可以试试这样的事情:
SELECT Animal.Name AS Name
FROM (SELECT AnimalID FROM Cat
UNION
SELECT AnimalID FROM Dog) AS AnimalsUnion
LEFT JOIN Animal
ON Animal.AnimalID = AnimalsUnion.AnimalID
它应该做的伎俩..