MySQL JOIN 语句
MySQL 正则表达式 

MySQL 子查询

在 MySQL 中,子查询(Subquery)是指在一个 SQL 查询中嵌套另一个完整的查询语句。子查询通常用于从结果集中选择数据,作为外部查询的一部分来使用。


单行子查询

单行子查询返回单个值,通常用于比较或作为条件使用。

使用示例

示例: 查询学生中年龄最高的学生信息。

SELECT student_id, student_name, age
FROM students
WHERE age= (SELECT MAX(age) FROM students);

在上面的例子中,子查询 (SELECT MAX(salary) FROM students) 返回最大年龄,外部查询则使用该值来筛选出对应的学生信息。


多行子查询

多行子查询返回多个值,可以作为 INNOT INEXISTS 等条件使用。

如有学生表studnents、班级表classes,现有统计王老师教学的所有学生。

SELECT student_id,student_name
FROM students
WHERE class_id IN (SELECT class_id FROM classes WHERE teacher_name='王老师');


统计学生年龄中大于平均年龄的学生

SELECT student_id,student_name
FROM students
WHERE age > (SELECT avg(age) FROM students);


总结

子查询在 MySQL 中是非常强大和灵活的工具,可以用于解决各种复杂的查询需求。但需要注意的是,过度使用子查询可能会影响性能,因此在设计查询时应考虑使用 JOIN 等其他方法来优化查询。