子查询(Subquery)是MySQL语言中的一种查询技术,它允许在一个查询语句中嵌入另一个查询语句。子查询可以出现在SELECT、FROM、WHERE和HAVING子句中,用于获取或计算主查询所需的数据。
子查询是一个独立的查询,它返回一个结果集,这个结果集可以被外部的查询(主查询)使用。子查询可以嵌套在多个层次,每个层次的子查询都可以访问其外部查询的数据。
假设有两个表:employees
和 departments
,结构如下:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL(10, 2),
department_id INT
);
CREATE TABLE departments (
id INT PRIMARY KEY,
name VARCHAR(100),
location VARCHAR(100)
);
查询工资高于平均工资的员工:
SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
查询每个员工所在部门的名称:
SELECT e.name, (SELECT d.name FROM departments d WHERE d.id = e.department_id) AS department_name FROM employees e;
通过以上信息,您可以更好地理解MySQL中的子查询及其应用场景和常见问题解决方法。
领取专属 10元无门槛券
手把手带您无忧上云