select p.p_id,p.P_NAME,p.P_SERIALNUM,p.P_ADDR,p.P_CTTIME,taskD.TD_PatTime,taskD.TD_VISITED
from (
select td.TD_PID,td.TD_PatTime,td.TD_VISITED
from PAT_TaskDetail td,
(
select t.T_ID
from PAT_Task t
where t.T_NO='2009年第一次巡检'
) task
where task.T_ID=td.TD_TID
) taskD,
PAT_Point p
where taskD.TD_PID=p.P_ID;///////////////////////////////////////////////////////////////////////////////////////////select p.p_id,p.P_NAME,p.P_SERIALNUM,p.P_ADDR,p.P_CTTIME,d.TD_PatTime,d.TD_VISITEDfrom pat_point p,pat_task t,pat_taskdetail d where t.T_NO='2009年第一次巡检' and t.T_ID=d.TD_TID and d.TD_PID=p.P_ID;//////////////////////////////////////////////////////////////////////////////////////
这两个sql那个更好?为什么?
一个是子查询,另一个是表连接
from (
select td.TD_PID,td.TD_PatTime,td.TD_VISITED
from PAT_TaskDetail td,
(
select t.T_ID
from PAT_Task t
where t.T_NO='2009年第一次巡检'
) task
where task.T_ID=td.TD_TID
) taskD,
PAT_Point p
where taskD.TD_PID=p.P_ID;///////////////////////////////////////////////////////////////////////////////////////////select p.p_id,p.P_NAME,p.P_SERIALNUM,p.P_ADDR,p.P_CTTIME,d.TD_PatTime,d.TD_VISITEDfrom pat_point p,pat_task t,pat_taskdetail d where t.T_NO='2009年第一次巡检' and t.T_ID=d.TD_TID and d.TD_PID=p.P_ID;//////////////////////////////////////////////////////////////////////////////////////
这两个sql那个更好?为什么?
一个是子查询,另一个是表连接
2. explain select ...
7.2. 优化SELECT语句和其它查询
7.2.1. EXPLAIN语法(获取SELECT相关信息)
7.2.2. 估计查询性能
7.2.3. SELECT查询的速度
7.2.4. MySQL怎样优化WHERE子句
7.2.5. 范围优化
7.2.6. 索引合并优化
7.2.7. MySQL如何优化IS NULL
7.2.8. MySQL如何优化DISTINCT
7.2.9. MySQL如何优化LEFT JOIN和RIGHT JOIN
7.2.10. MySQL如何优化嵌套Join
7.2.11. MySQL如何简化外部联合
7.2.12. MySQL如何优化ORDER BY
7.2.13. MySQL如何优化GROUP BY
7.2.14. MySQL如何优化LIMIT
7.2.15. 如何避免表扫描
7.2.16. INSERT语句的速度
7.2.17. UPDATE语句的速度
7.2.18. DELETE语句的速度
7.2.19. 其它优化技巧