问题
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