【发布时间】:2016-05-23 07:23:44
【问题描述】:
我知道以前有人问过这个问题,并且我已经尝试过我在这里看到的技术。但这只是行不通。
我有一个看起来像这样的“人”表
PersonID、PersonName、PersonYOB、PersonCOB、FatherID
1 Fred Astaire 1963 USA 2
2 Bruce Astaire 1933 USA NULL
3 Adele Astaire 1961 FR 2
4 Gene Kelly 1965 IT NULL
5 Lucy Astaire 1935 USA NULL
我想做的是一个 SELECT,其中父亲的名字来自父亲的 PersonID。我也有母亲,但为了简单起见,我把它去掉了。一旦我让父亲工作,我就会把母亲加回来。
我当前的 SELECT 看起来像这样
SELECT p.*, f.PersonName AS FatherName FROM People
LEFT OUTER JOIN People f ON
p.PersonID = f.FatherID
我所有的人都出现了,但父名始终为 NULL。
Fred Astaire 应将父亲 ID 2 和 f.PersonName 显示为 Bruce Astaire。 Adele Astaire(他的妹妹)也是如此。
我错过了什么?
【问题讨论】:
-
你可以使用
inner join来达到这个目的...