表做关联时,要将返回记录少的表作为驱动表,即写在from子句的最后,注意,是返回记录少的表,不是记录少的表。如表a,b,其中表a返回记录数少,表b返回记录数多:
select a.* from b,a where a.id=b.id

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1236/1236076.xml?temp=.3027918
      

  2.   

    SQL语句的执行是从后往前的倒序方式,首先碰到的表即为驱动表。
      

  3.   

    sorry,应该是sql语句的“分析”是从后往前的。下面的“执行”和“读取”的概念,我也不怎么清楚,在这儿借楼主的地盘向高手们请教了^_^所有的S Q L语句分三个阶段进行处理:语法分析、执行、读取数据。 运行
    在运行阶段需要完成处理语句的读写。O r a c l e知道如何获取数据(基于句法分析阶段确定的运
    行方案),知道优化的访问路径(在句法分析阶段确定)。提供根据S Q L语句中的选择条件约束读取
    数据所需的全部信息。如果S Q L语句包含任何修改或删除操作,则在需要的情况下可锁定数据。 读取
    在读取阶段,检索所有符合条件的行,如果需要保存查询,则可以执行保存操作查询的
    结果。结果按照查询指令被格式化和显示。