某个操作需要依赖于另一个SELECT语句的查询结果,那么就将SELECT语句嵌入到该操作语句中,形成子查询。
1、子查询(解决多表查询性能问题)
子查询是在SQL语句内的另外一条SELECT语句,也称为内查询或是SELECT语句。
范例:
子查询与多表关联查询对比:子查询的使用更加灵活、功能更强大,更加容易理解,而多表关联查询效率高于子查询。
子查询规则:
1)子查询必须使用‘()’括起来
2)子查询不能包括ORDER BY子句
3)子查询允许嵌套多层,但不能超过255层。
2、单行子查询
单行子查询是指返回一行数据的子查询语句,当用WHERE子句中应用单行子查询时,可以使用比较运算符(=、>、<、>=、<=、<>)。
范例:
多行子查询是指返回多行数据的子查询语句,当在WHERE子句中使用多行子查询时,必须使用多行运算符(IN、ANY、ALL)。
范例:
3、关联子查询
范例: