MySQL数据库子查询示例 子查询概述 子查询是在SELECT、INSERT、UPDATE或DELETE语句中嵌入的SELECT查询。 以下是一些子查询的示例: 1. 查询所有比平均薪水高的员工信息 SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees); 2. 查询所有部门中薪水最高的员工信息 SELECT e.* FROM employees e WHERE e.salary = (SELECT MAX(salary) FROM employees WHERE department_id = e.department_id); 3. 查询所有没有直接下属的经理 SELECT m.* FROM employees m WHERE NOT EXISTS ( SELECT 1 FROM employees e WHERE e.manager_id = m.employee_id ); 4. 查询所有薪水低于其部门平均薪水的员工信息 SELECT e.* FROM employees e JOIN ( SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id ) AS dept_avg ON e.department_id = dept_avg.department_id WHERE e.salary < dept_avg.avg_salary; 5. 查询所有不属于薪水最高的三个部门的员工信息 SELECT e.* FROM employees e WHERE e.department_id NOT IN ( SELECT department_id FROM employees ORDER BY salary DESC LIMIT 3 ); 6. 查询所有在薪水最高的员工所在部门工作的员工信息 SELECT e.* FROM employees e WHERE e.department_id = ( SELECT department_id FROM employees ORDER BY salary DESC LIMIT 1 ); 注意: 子查询可以嵌套多层,但是要注意性能问题,尤其是内层查询执行多次时。 使用子查询时,应尽量使用JOIN代替子查询,以提高查询效率。
代码展示了几个子查询的例子,这些例子涵盖了不同的查询场景,包括比较、存在性检查、连接和筛选等,在使用子查询时,应当注意其可能对性能的影响,特别是在处理大量数据时。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1151517.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复