我正在试着解决这个问题
显示笼号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这里的问题是,我想要从饲养员表中获取动物饲养员的名称,但它也被用作笼养人员的名称,所以基本上我试图为笼养人员和动物饲养员获取一组单独的名称,我该如何解决这个问题?
发布于 2014-04-21 23:54:23
如果我很好地理解您的问题,您需要选择一个列两次。应该可以像您的示例中那样做(不是100%确定,这里没有SB服务器可供尝试)。如果不起作用,您可以使用一张表两次。
发布于 2014-04-21 23:56:31
假设cage有keeperID,并且它是keeper表的外键。
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 DESChttps://stackoverflow.com/questions/23200710
复制相似问题