MySQL中的嵌套查询,也称为子查询,是指在一个查询语句中嵌入另一个查询语句。子查询可以出现在SELECT、FROM、WHERE和HAVING子句中。嵌套查询的结果可以作为外部查询的条件或数据源。
假设我们有两个表:employees 和 departments,我们想要查询每个部门的员工数量。
-- 创建示例表
CREATE TABLE departments (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
-- 插入示例数据
INSERT INTO departments (id, name) VALUES (1, 'HR'), (2, 'Engineering');
INSERT INTO employees (id, name, department_id) VALUES
(1, 'Alice', 1), (2, 'Bob', 1), (3, 'Charlie', 2);
-- 查询每个部门的员工数量
SELECT
d.name AS department_name,
(SELECT COUNT(*) FROM employees e WHERE e.department_id = d.id) AS employee_count
FROM
departments d;通过以上信息,您可以更好地理解MySQL嵌套查询的基础概念、优势、类型、应用场景以及可能遇到的问题和解决方法。