[英]SQL Joins and Renaming columns
如果我有三個表,如dog
, cat
,和animal
,其中的一個屬性animal
是name
,我怎么能加入dog
和cat
和返回兩個名字?
結構看起來像這樣:
---Dog---
AnimalID char(9)
ChasesID char(9)
---Cat---
AnimalID char(9)
--Animal--
AnimalID char(9)
Name char(20)
我想在ChasesID(在Cat表中引用AnimalID)上加入Dog
and Cat
的位置,並從Animal
返回兩個動物的名字。
為此,您需要兩個聯接:
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
獲得名稱。
您可以在這三個表上創建一個簡單的聯接。
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;
我不確定您要采用這種方式做什么,但是如果您只想獲取動物的名稱,可以嘗試使用以下方法:
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
它應該可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.