Self join to a table

有些话、适合烂在心里 提交于 2020-01-13 10:43:10

问题


I have a table like

Employee
==================
name      salary
==================
a        10000
b        20000
c        5000
d        40000

i want to get all the employee whose salary is greater than A's salary. I don't want to use any nested or sub query. It has been asked in an interview and hint was to use self join. I really can't figure out how to achieve the same.


回答1:


select e1.* from Employee e1, Employee e2  where 
           e2.name = 'a' and
           e1.salary > e2.salary

Using self join

 select e1.* from Employee e1 join Employee e2  on 
           e2.name = 'a' and
           e1.salary > e2.salary



回答2:


SELECT emp1.* FROM Employee emp1 JOIN Employee emp2
ON emp2.Name = 'A' and emp1.Salary > emp2.Salary


来源:https://stackoverflow.com/questions/3035105/self-join-to-a-table

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!