日期:2014-05-18  浏览次数:20377 次

查询效率问题 向mengmou()mengmou()以及众高手请教
偶然来到这里,才发现这里有好多高手,先有一问题想众高手请教一下

员工信息表1[员工名,姓名,性别],T_Worker[WorkerId,name,sex],Worderid为该表主键
员工信息表2[员工号,电话,手机,Email],T_WorkerContact[WorkerId,tel,phone,email],
WorkerId为该表主键
现在要取得员工号为001的员工的姓名和手机信息,有如下sql,如何修改才能使得其执行效率最高?
并写明原因
select   *   from   T_Worker   a,T_WorkerContact   b   where   a.workerid=b.workerid   and   a.workerid= '001 '



------解决方案--------------------
不要查出所有的字段,只查所需的字段:

select a.name,b.phone from T_Worker a,T_WorkerContact b where a.workerid=b.workerid and a.workerid= '001 '

此语句不能再优化,而无法优化!

再说该记录只有一条,查询速度应该不要1s
------解决方案--------------------
--try
select * from T_WorkerContact b
left join T_Worker a on a.workerid=b.workerid
where a.workerid= '001 '
------解决方案--------------------
--try


select a.workerid, a.name, b.phone
from T_Worker a
inner join T_WorkerContact b on a.workerid=b.workerid and a.workerid= '001 '