簡體   English   中英

SQL左聯接自我

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM