[英]SQL Left Join on Self
我知道這已經被問過了,我已經嘗試了在這里看到的技術。 但這是行不通的。
我有一張“人”表,看起來像這樣
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
我所有的人都出現了,但是FatherName始終為NULL。
弗雷德·阿斯泰爾(Fred Astaire)應該顯示父親ID 2和f.PersonName為Bruce Astaire。 Adele Astaire(他的姐姐)也是如此。
我想念什么?
在這里,您可以使用內部聯接,因為您正在嘗試將表與自身聯接。
SELECT p.*, f.PersonName AS 'FatherName' FROM People p //here is the p you forgot
INNER JOIN People f ON
p.PersonID = f.FatherID
您的加入條件不正確。 更改如下。
SELECT p.*, f.PersonName AS FatherName FROM People p
LEFT OUTER JOIN People f ON
p.FatherID= f.PersonID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.