如何自我加入空值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 ;
我想显示客户的姓名以及推荐他们的人的姓名。我以为我在正确的轨道上,但结果搞砸了。我在 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 ;