先逐行扫描外部查询的每一行,让每一行与内部查询的表进行对比,满足内部查询where条件的返回真,不满足的返回假。
提醒:单独执行内部查询时会报错。
首先执行一次外部查询
对应外部查询的每一行分别执行一次子查询,而且每次执行子查询时都会引用外部查询中当前行的值。
使用子查询的结果来确定外部查询的结果集。
例:
不同职工经手订单金额最大的订单信息
select a.* from 订购单 a where 金额 = (select max(金额) from 订购单 where 职工号=a.职工号)
不同仓库的最大工资对应的职工信息
select a.* from 职工 a where 工资 = (select max(工资) from 职工 where 仓库号 = a.仓库号)
原文:http://www.cnblogs.com/xieyuanzheng/p/5605332.html