第一种情况是先搜索work_name 表,然后根据得到的结果集再去匹配pflow_tbl 表

解决方案 »

  1.   

    兄弟,两个结果不是一样的吗,只是排列顺序不一样,oracle可不象是sql*server,必须按固定的顺序显示出来,除非你做了排序。
      

  2.   

    一个是work_type in (...)
    一个是work_type = '...'
    你先查看一下
    select work_type from work_name where work_name.work_name='商品房测绘登记'
    是什么结果,再比较两个条件看看
      

  3.   

    通常表关联的写法是:
    select curflow
      from pflow_tbl x, work_name y
     where x.work_type = y.work_type
       and y.work_name='商品房测绘登记';从两句语句来看,结果集的顺序应该是一样的(按照pflow_tab的物理存储顺序),不明白为什么会这样子
      

  4.   

    我知道了,IN语句的执行计划是转换为merge join 也就是将相连的两个表按连接字段排序后连接。我在select 后加 /*+star */就好了,这样就改变连接顺序了