2014-10-05 52 views
0

如果我有三个表如dogcatanimal,其中animal属性是name,我怎么能加入dogcat和返回两个名字?SQL连接与重命名列

结构会是这个样子:

---Dog--- 
AnimalID char(9) 
ChasesID char(9) 


---Cat--- 
AnimalID char(9) 


--Animal-- 
AnimalID char(9) 
Name  char(20) 

,我想加入DogCat在ChasesID(在猫表AnimalID引用),并从Animal返回这两种动物的名称。

回答

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 

它应该做的诀窍......

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得到名字。

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;