Question

J'ai une table comme

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

Je veux obtenir tous les employés dont le salaire est supérieur au salaire d'un. Je ne veux pas utiliser une requête imbriquée ou sous. Il a été demandé dans une interview et l'indice était d'utiliser l'auto rejoindre. Je ne peux pas comprendre comment atteindre le même.

Était-ce utile?

La solution

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

Utilisation de l'auto JOIN

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

Autres conseils

SELECT emp1.* FROM Employee emp1 JOIN Employee emp2
ON emp2.Name = 'A' and emp1.Salary > emp2.Salary
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top