[英]Inner join followed by a self join
我有两个表PERSON
和PERSONRELATION
。
在PERSON
表上,我有PERSONpk
, FIRSTNAME
和LASTNAME
列。
在PERSONRELATION
表我有MANAGER1fk
这对于一个FK PERSONpk
。
我正在尝试加入两个表, MANAGERFIRSTNAME
上面的所有字段,然后自我加入以添加MANAGERFIRSTNAME
和MANAGERLASTNAME
。 这是我所做的,但显然不正确:
Select PERSONpk, MANAGER1FK,e.FIRSTNAME,e.LastName,m.FIRSTNAME,M.LASTNAME
FROM dbo.PERSON e
INNER JOIN dbo.PERSONRELATION rel
ON rel.PERSONFK = PERSONPK
INNER JOIN dbo.PERSON m ON e.PERSONpk = m.MANAGER1FK
三个问题:
表的个人关系包含员工和经理人之间的FK; 因此,您需要从personrelation(MANAGER1fk)加入第二个fk字段(这不是自我联接),如果层次结构全部由个人亲自维护,那将是自我联接。
SELECT e.PERSONpk
, rel.MANAGER1FK
, e.FIRSTNAME
, e.LastName
, m.FIRSTNAME
, M.LASTNAME
FROM dbo.PERSON e
INNER JOIN dbo.PERSONRELATION rel
ON rel.PERSONFK = e.PERSONPK
INNER JOIN dbo.PERSON m
ON m.PERSONpk = rel.MANAGER1FK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.