tags:

views:

66

answers:

2

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.

+7  A: 
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
Salil
+1 for old school. Bah, who needs the `join` keyword? :-)
paxdiablo
thanks a lot...I was thinking in a complex way...
Mohit
+1  A: 
SELECT emp1.* FROM Employee emp1 JOIN Employee emp2
ON emp2.Name = 'A' and emp1.Salary > emp2.Salary
Chinjoo
this will work. only modification will be mysql are case sensitive so emp2.Name = 'A' should be emp2.Name = 'a'
Salil