exists的执行顺序请教

php_aga 2012-03-22 02:31:54
如下:
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的子查询进行查询

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

...全文
390 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
php_aga 2012-03-22
  • 打赏
  • 举报
回复
嗯?不是ID为大的先执行么?那请问是否有执行顺序,以小先执行?
ACMAIN_CHM 2012-03-22
  • 打赏
  • 举报
回复
[Quote]按照explain的说法,执行顺序是先2,再1,即先查询sal50,再查询a.[/Quote]并无这个说法啊。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧