SQL嵌套查询遇到的问题

select * from emp where salary>all(select salary from emp where dept_id=(select id from dept where dept.name='营销部'));
我这条语句要查询工资比营销部员工最高工资还要高的员工的信息。

select salary from emp where dept_id=(select id from dept where dept.name='营销部')里面这条语句执行出来就是下面这张图。

img


也就是说要查询的人工资要高于40000.但是最上面的SQL执行出来确实这样。

img


这是需要用到的两张表。

img

img


可以看看我的问题到底在那里吗。

那个salary 字段类型要改成int哦,或者其他数字类型
也可以这样select * from emp where cast(salary as unsigned inteter)>all(select salary from emp where dept_id=(select id from dept where dept.name='营销部'));


select * from emp 
where salary>(select max(salary) from emp where dept_id=(select id from dept where dept.name='营销部'));