Posted on 2008-08-12 14:23 
Prayer 阅读(150) 
评论(0)  编辑 收藏 引用  所属分类: 
数据库,SQL 
			 
			
		 
		如果在SELECT里用了IN,   
  例如:select   *   from   abc   where   a1   in   (select   a1   from   ccc)   
  那么,在IN里SELECT语句是不是会自动运行很多次,还是只运行一次。   
  能说说这句的运行机制吗?
这个语句只运行一次,先返回select   a1   from   ccc的记录集,再比较abc.a1是不是在这个记录集里,效率不如:   
  select   *   from   abc   where   exists   (select   a1   from   ccc   where   ccc.a1=abc.a1)  
最好用   
  select   abc.*   from   abc,ccc   where   ccc.a1=abc.a1   
同意楼上   、   但是建议在子查询里   加上   去除重复项的子句。
select   abc.*   from   abc,ccc   where   ccc.a1   *=   abc.a1
NO.6   作者: Jameszht
如果ccc中的a1有重復可用   
  select   abc.*   from   abc,(select   distinct   a1   from   ccc)   c   where   c.a1=