MYSQL表搜索最高工资

时间:2016-02-03 10:10:01

标签: mysql

INSERT INTO `table` (`id`, `e_name`, `e_salary`, `m_id`) VALUES 
(1, 'Goat' , 500, 3), 
(2, 'Dog'  , 700, 4), 
(3, 'Rat'  , 200, 6), 
(4, 'Fox'  , 300, 3), 
(5, 'Camel', 900, 1), 
(6, 'Lion' , 200, 1);

e_name->员工姓名,e_salary->员工薪水,m_id->经理ID,

我想选择薪水高于其经理的员工的姓名。

我已经尝试了

select `e_salary` from `emp` where `id`= (select `m_id` from `table` group by `m_id`)

1 个答案:

答案 0 :(得分:0)

您必须使用经理的ID自行加入员工表,以获得经理的薪水:

select t1.id, t1.e_name, t1.salary
from table t1
inner join table t2 on t1.m_id=t2.id
where t1.salary>t2.salary

如果要包含未​​设置经理的员工,请将内部联接更改为左联接。在这种情况下,您还需要将where条件更改为t1.salary>coalesce(t2.salary,0)