2010-06-14 49 views
5

我有一個像自加入到表

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

我想所有其薪水比的薪水高的僱員表。 我不想使用任何嵌套或子查詢。 接受採訪時提問,提示是使用自我加入。我真的無法弄清楚如何達到同樣的效果。

回答

16
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 
+1

+1的老同學。 Bah,誰需要'join'關鍵字? :-) – paxdiablo 2010-06-14 05:49:02

+0

非常感謝... 我在想一個複雜的方式... – Mohit 2010-06-14 07:09:24

+0

非常感謝。以簡單的方式解釋 – qasimzee 2011-08-09 07:03:32

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

這將起作用。只有修改將mysql是區分大小寫的,所以emp2.​​Name ='A'應該是emp2.​​Name ='a' – Salil 2010-06-14 05:52:43