赞
踩
子查询是指一个查询语句嵌套在另一个查询语句内部的查询。在 SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件。
子查询中常用的操作符有ANY、SOME、ALL、EXISTS、IN,也可以使用比较运算符。子查询可以添加到 SELECT、UPDATE 和 DELETE 语句中,而且可以进行多层嵌套。
在条件表达式中产生标量的子查询
SELECT * FROM score
WHERE id = (SELECT event_id
FROM event
WHERE date='2015-07-01' AND type='Q');
所谓标量,就是单个属性的一个原子值。当子查询出现在 WHERE 子句中的比较运算符(= ,>, >= ,< , <= ,<>)的右边,其输出结果应该只有一个才对。
很容易理解,如果返回多条结果,就无法进行比较,系统就会报错。
又如:
SELECT * FROM teacher WHERE birth = MIN(birth); /*错误*/
这个查询是错的!因为MySQL不允许在子句里面使用统计函数,所以改用子查询:
SELECT * FROM teacher
WHERE birt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。