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`)
答案 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)
。