SQL连接和重命名列

时间:2014-10-05 21:37:22

标签: mysql sql join inner-join renaming

如果我有三个表格,例如dogcatanimal,其中animal的属性为name,我该如何加入{ {1}}和dog并返回两个名字?

结构看起来像这样:

cat

我想在ChasesID上加入---Dog--- AnimalID char(9) ChasesID char(9) ---Cat--- AnimalID char(9) --Animal-- AnimalID char(9) Name char(20) Dog(在Cat表中引用AnimalID),并从Cat返回两个动物的名称。

3 个答案:

答案 0 :(得分: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获取名称。

答案 1 :(得分: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;

答案 2 :(得分: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

它应该做的伎俩..