日期:2014-05-17  浏览次数:20476 次

sql语句调优和一个小问题需要大家帮忙解决
select sno,sname,sdept
from student
where sdept in
  (
     select sdept
     from student 
     where sname='ccf'
  );

-----------------------------2
select sno,sname,sdept
from student
where sdept =
  (
     select sdept
     from student 
     where sname='ccf'
  );

------------------------------3
select sno,sname,sdept
from student s1
where exist
(
   select  from student s2
   where s2.sdept=s1.sdept and s2.name='ccf'
);
这三个sql语句那个效率会更高一些?
还有sql语句后面使用分号结束吗?
------解决方案--------------------
实际执行看效果。自己分析。

第二种子查询内返回不止一个值时,报错。
------解决方案--------------------
第二种写法很容易出错

第三种写法,楼主上面语句不对

至于in和exists效率,说法不一,一是看楼主如何用语句,二是看数据库引擎优化结果