Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 自联接到表_Sql_Self Join - Fatal编程技术网

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