sql从两个不同的表中调用同名的列

时间:2014-04-21 15:46:27

标签: sql

我想解决这个问题

“显示编号为144的笼子的详细信息。包括此笼中动物的名称,以及照看笼子的守护者名称,以及照看笼子中每只动物的守护者名称。包括物种名称对于笼中的每只动物。数据应显示每只动物从最老到最年轻的“

这是我的疑问:

SELECT a.cageno, c.name AS "animal name", a.keeperID, 
       b.surname AS "cage keeper", c.keeperID,b.surname AS "animal keeper", 
       d.name AS "species name"
FROM cage a, keeper b, animal c, specie d
WHERE a.cageNo = 144 AND c.keeperID = b.keeperID 
ORDER BY c.DOB DESC

这里的问题是我想从守门员桌上得到守门员的名字,但它也被用作守门员的名字。 所以基本上我试图为笼养管理员以及动物饲养员单独设置一套名称 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你需要选择一列两次。它应该可以像你的例子那样做(不是100%肯定,这里没有SB服务器试试)。如果它不起作用,您可以使用一个表两次。

答案 1 :(得分:0)

类似这样的假设笼子有keeperID,它是守护者表的外键。

SELECT a.cageno, c.name AS "animal name", a.keeperID, e.surname AS "cage keeper", 
       c.keeperID, b.surname AS "animal keeper",  d.name AS "species name"
FROM cage a, keeper b, animal c, specie d, keeper e
WHERE a.cageNo = 144 
  AND c.keeperID = b.keeperID
  AND a.KeeperID = e.KeeperID
ORDER BY c.DOB DESC