簡體   English   中英

SQL連接和重命名列

[英]SQL Joins and Renaming columns

如果我有三個表,如dogcat ,和animal ,其中的一個屬性animalname ,我怎么能加入dogcat和返回兩個名字?

結構看起來像這樣:

---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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM