有关sql语句 exist的问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:02:48
小弟近期学习编程,涉及到一些sql语句处理,
对exist的运行不慎了解,这个词具体应该怎么用呢?
它是什么意思?
说是返回一个true 或 false, 那在 结果为真后,这条语句还执行马?
若为假,即没有数据,又会怎样?

select * from 表A where exists(select * from 表B where 表B.id=表A.id)

这句相当于

select * from 表A where id in (select id from 表B)

对于表A的每一条数据,都执行select * from 表B where 表B.id=表A.id的存在性判断,如果表B中存在表A当前行相同的id,则exists为真,该行显示,否则不显示

exits适合内小外大的查询,in适合内大外小的查询