Sql 自联接到表
我有一张像这样的桌子Sql 自联接到表,sql,self-join,Sql,Self Join,我有一张像这样的桌子 Employee ================== name salary ================== a 10000 b 20000 c 5000 d 40000 我想得到所有工资高于A工资的员工。 我不想使用任何嵌套查询或子查询。 在一次采访中,有人问到这一点,暗示是要使用self-join。我真的不知道如何达到同样的效果 select e1.* from Employee e1, Emp
Employee
==================
name salary
==================
a 10000
b 20000
c 5000
d 40000
我想得到所有工资高于A工资的员工。
我不想使用任何嵌套查询或子查询。
在一次采访中,有人问到这一点,暗示是要使用self-join。我真的不知道如何达到同样的效果
select e1.* from Employee e1, Employee e2 where
e2.name = 'a' and
e1.salary > e2.salary
使用自连接
select e1.* from Employee e1 join Employee e2 on
e2.name = 'a' and
e1.salary > e2.salary
这会奏效的。只有对mysql的修改是区分大小写的,所以emp2.Name='A'应该是emp2.Name='A'非常感谢。用简单的方式解释
SELECT emp1.* FROM Employee emp1 JOIN Employee emp2
ON emp2.Name = 'A' and emp1.Salary > emp2.Salary