2014-10-05 51 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;