关于exist的sql,请教内部执行原理

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:50:21
select * from TDefUser
where exists (select 1 from TAccConsume where TDefUser.userid=TAccConsume.userid and TAccConsume.amount>5000)

请问该sql具体每一步是如何执行的?(执行原理)

exists 是存在的意思。
你上面写的代码是这样执行的。
有exists 关键字在首先是执行 (select 1 from TAccConsume where TDefUser.userid=TAccConsume.userid and TAccConsume.amount>5000)
这段代码的。如果这段代码查询后有受影响的行数(也就是可以查询到数据)然后在查询select * from TDefUser这个语句。。
如果(select 1 from TAccConsume where TDefUser.userid=TAccConsume.userid and TAccConsume.amount>5000)
段代码没有受影响的行数(没有查询到数据)。他还会执行select * from TDefUser这个语句~但是查不出任何数据~也就是等于没有执行。。。
exists 关键字一般就是这样执行的。。首先判断后面的子句里面有没有查询到数据~查询到了的话就执行前面的查询。。没有查询到数据的话执行前面的也查不到任何数据!!!!!
回答完毕!!!
希望采纳!!