如何自我加入空值postgresql

How to self join with nulls postgresql

我想显示客户的姓名以及推荐他们的人的姓名。我以为我在正确的轨道上,但结果搞砸了。我在 WHERE 子句中尝试了条件 ReferredBy NOT NULL,在 ON 子句中尝试了条件 ReferredBy NOT NULL - 没有运气。 我将不胜感激任何帮助! sqlfiddle

CREATE TABLE Customers(
          Id int NOT NULL,
          Name varchar(50) NOT NULL,
          ReferredBy int  REFERENCES Customers(Id),
          PRIMARY KEY (Id)
);

INSERT INTO Customers VALUES
(11, 'Peter', 22),
(22, 'Ariel', NULL),
(33, 'Tom', 11);

我的做法:

 SELECT c.Id, c.Name, c.ReferredBy, n.Name as ReferredBy_name
 FROM Customers c
 LEFT JOIN Customers n
 ON c.Id = n.ReferredBy 

期望的输出:

我认为 JOIN 条件颠倒了表格:

SELECT c.Id, c.Name, c.ReferredBy, n.Name as ReferredBy_name
FROM Customers c LEFT JOIN
     Customers n
     ON n.Id = c.ReferredBy ;