Posted on 2008-08-12 14:23
Prayer 阅读(136)
评论(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=