select E050.E050_SHOKUIN_NO,E110.E110_TOKJKO1,E070.E070_MEI 
from E050 left join (E110 cross join E070)
on (E050.E050_SHOKUIN_NO = E110.E110_SHOKUIN_NO   AND
  E050.E050_NDO = E110.E110_NDO AND 
 E050.E050_EDC_CD =  E110.E110_EDC_CD and 
E070.E070_MEI_KB ='01' AND E050.E050_JSI_CD = E070.E070_MEI_CD)
order by E050.E050_SHOKUIN_NO我是这样写的。检索结果不对。从E070里面检出的数据是符合E050 与E110外连接条件的数据,而我想要得是单纯符合E050 与E070外连接条件的数据。
现在才真正体会到sql语句的高深阿!
那位大侠帮帮忙吧??!!

解决方案 »

  1.   

    select E050.E050_SHOKUIN_NO,E110.E110_TOKJKO1,E070.E070_MEI 
    from E050 ,E110 , E070
    where (E050.E050_SHOKUIN_NO *= E110.E110_SHOKUIN_NO   AND
      E050.E050_NDO *= E110.E110_NDO AND 
     E050.E050_EDC_CD *=  E110.E110_EDC_CD and 
    E070.E070_MEI_KB ='01' AND E050.E050_JSI_CD *= E070.E070_MEI_CD)
    order by E050.E050_SHOKUIN_NO
      

  2.   

    或者:select E050.E050_SHOKUIN_NO,E110.E110_TOKJKO1,E070.E070_MEI 
    from E050 left join (E110 cross join E070)
    on (E050.E050_SHOKUIN_NO = E110.E110_SHOKUIN_NO   AND
      E050.E050_NDO = E110.E110_NDO AND 
     E050.E050_EDC_CD =  E110.E110_EDC_CD and 
    E050.E050_JSI_CD = E070.E070_MEI_CD)
    where E070.E070_MEI_KB ='01'
    order by E050.E050_SHOKUIN_NO
      

  3.   

    我用的sqlserver2005,不认*= 这个符号,所以只能用left join 
    另外,我认为你写的外连接条件对两个外连接同时起作用,结果集被缩小了,这也是我遇到的问题。