查询效率问题 向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 '