赞
踩
查找出工资比Abel高的员工名字和工资
方式一 多次查询
SELECT salary `salary_abel` FROM employees WHERE last_name = 'Abel';
SELECT last_name, salary FROM employees WHERE salary > salary_abel;
方式二 自连接
SELECT e2.last_name, e2.salary FROM employees e1 , employees e2 WHERE e2.salary > e1.salary AND e1.last_name = 'Abel';
方式三 子查询
SELECT last_name,salary FROM employees WHERE salary > (
SELECT salary FROM employees WHERE last_name = 'Abel'
);
外查询(或主查询)/ 内查询(或子查询)
子查询 在主查询之前执行
子查询的结果被主查询(外查询)使用
角度一:单行子查询
VS 多行子查询
按照内查询的结果返回一条还是多条记录,将子查询分为 单行子查询
和多行子查询
角度二:相关(或关联)子查询
和 不相关(或非关联)子查询
按照内查询是否被执行多次,将子查询分为 相关(或关联)子查询 和 不相关(或非关联)子查询
比如:相关子查询的需求:查询工资大于本部门
平均工资的员工信息(外查询和内查询具有关联性,内查询执行次数和外查询相关)
不相关子查询的需求:查询工资大于本公司
平均工资的员工信息(外查询和内查询不具备关联性,一次执行内查询即可完成所有外查询)
= != > >= < <=
查询与141号员工 manager_id和department_id相同的其他员工的 employee_id, manager_id, department_id
分析:与141号相同的 manager_id , department_id ;其他员工;
答案:
方式1:
SELECT employee_id, manager_Id, department_id FROM employees
WHERE
manager_id = (S
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。