2014-10-05 2 views
0

나는 그런 animal의 속성이 name입니다 dog, catanimal 등 세 개의 테이블이있는 경우, 어떻게 dogcat에 가입하고 두 이름을 반환 할 수 있습니다?SQL 조인 및 이름 바꾸기 열

구조는 다음과 같이 보일 것입니다 :

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


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


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

을 나는 ChasesID (고양이 테이블에 AnimalID 참조)에 DogCat에 가입하고 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;