msql数据库in和exists用法比较

exists:用法:select * from table1 where exists (select * from table2 where table1.id = table2.id )
返回table1中和table2中id相同的记录(双重循环)结果和in语法一样,思想不一样,
in:select * from table1 where id in (select id from table2 )

2者思路不一样:exists:先获得每一条table1的数据,然后获得id字段,去table2表内查找对应值,找到说明符合条件
in:先获得所以的id可能性,再检索table2数据时,判断当前的id是否在id集合内

对于in:如果table2中数据量太大,不使用,因为他要先把这么多数据找出来并存储,开销大,可以用exists

posted @ 2015-09-21 22:45  书书书书书书  阅读(165)  评论(0编辑  收藏  举报