首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

exists的执行顺序请问

2012-04-17 
exists的执行顺序请教如下:EXPLAIN SELECT *FROM sal50 aWHERE NOTEXISTS (SELECT 1FROM sal50WHERE a.man

exists的执行顺序请教
如下:
EXPLAIN SELECT * 
FROM sal50 a
WHERE NOT 
EXISTS (

SELECT 1 
FROM sal50
WHERE a.man_no = man_no AND a.ym > ym
)
ORDER BY `man_no` ASC  




id select_type table type possible_keys key key_len ref rows Extra  
1 PRIMARY a ALL NULL NULL NULL NULL 34337 Using where; Using filesort 
2 DEPENDENT SUBQUERY sal50 ref sal501,sal502 sal501 5 sysal.a.man_no 19 Using where; Using index 

按照explain的说法,执行顺序是先2,再1,即先查询sal50,再查询a.

但看了exists的说法,是exists作为where条件时,先对where前的主查询(外表)进行查询,然后将主查询的结果一个一个带入exists的子查询进行查询

请问我哪里理解错误,谢谢?



[解决办法]

引用按照explain的说法,执行顺序是先2,再1,即先查询sal50,再查询a.

热点排行