关系不存在PostgreSQL

时间:2018-07-25 00:52:08

标签: sql postgresql

我正在开发LeetCode程序,但似乎无法在PostgreSQL中工作。  问题是找到一个薪水比其经理高的员工。  这是表格:

| Id | Name  | Salary | ManagerId |

| 1  | Joe   | 70000  | 3         |

| 2  | Henry | 80000  | 4         |

| 3  | Sam   | 60000  | NULL      |

| 4  | Max   | 90000  | NULL      |

我为此付出了一些努力,因为这是我正在尝试的代码:

select e.Name as Employee
from Employee as e
,Employee as e2 
inner join e2 on e.Id = e2.Id
and e.Salary > e2.Salary

但是我不断收到错误消息

  

错误:关系“ e2”不存在。

谁能告诉我这是为什么,以及我需要做些什么才能使它起作用?

谢谢!

1 个答案:

答案 0 :(得分:1)

正确的连接语法应为:

select e."Name" as Employee
from "Employee" as e
inner join employee e2 on e."ManagerId" = e2."Id"
and e."Salary" > e2."Salary"

表名在inner join之后 之后,您需要将每个员工与其经理联系起来,因此联接条件应为e。“ ManagerId” = e2。“ Id”

最后一个注释:

在PostgreSQL中,表和列的名称不区分大小写,除非用引号引起来。

因此,e.managerid等同于e.ManagerId,但不等同于e。“ ManagerId”