EXISTS和NOT EXISTS操作符只测试某个子查询是否返回了数据行如果是则EXISTS将是true NOT EXISTS将是false
如
[sql]
select exitsts (select * from absence)
select not exists (select * from absence)
与主查询相关的子查询需要引用主查询里的值所以必须依赖于主查询因为这种联系与主查询相关的子查询不能脱离主查询作为一条独立的查询命令去执行
如
[sql]
select j from t where (select i from t where i=j)
与主查询相关的子查询的工作情况是把值从主查询传递到子查询看它们是否满足在子查询里给出的条件
有相当一部分使用了子查询的命令可以被改写成一个联结查询有时候联结查询要比子查询的执行效率更高所以把子查询改写成联结查询是个不坏的主意