EXIST 和in都是表示在某個范圍朦肘,查詢結(jié)果相同,但是有前后驅(qū)動的區(qū)別废士。
#對B查詢涉及id,使用索引蝇完,故B表效率高官硝,可用大表 -->外小內(nèi)大
select * from A where exists (select * from B where A.id=B.id);
#對A查詢涉及id矗蕊,使用索引,故A表效率高氢架,可用大表 -->外大內(nèi)小
select * from A where A.id in(select? id? from B);
總結(jié):一般使用的場景是 IN適合主表大子表小傻咖,EXIST適合主表小子表大