select A.BAG_NO1,A.AWB_NO,A.TEMP_NO,B.OUT_DATE,A.SHPR_NAME,A.BUSINESS_ATTN,A.SHPR_ADDR,A.SHPR_TEL,A.CNEE_NAME,A.CNEE_ADDR,A.CNEE_TEL,A.CMDTY_NAME,A.PKG,A.GW,A.CLASS,A.CLEAR_CMP,A.AWB_DATE,A.ORIGIN_STN,A.DEST_STN,A.CCN_STN,A.STN_TIME from EHU_AWB A,EHU_CNL B where A.CNL_NO = B.CNL_NO order by A.AWB_DATE desc
由於A.CNL_NO = B.CNL_NO這個條件,所以當表EHU_AWB沒有CNL_NO時候,就查詢不出來,現在想要把EHU_AWB中的所有資料查詢出來,也跟EHU_CNL連接,但是左連接也必須有倉單號。怎麼改?

解决方案 »

  1.   


    ----使用左连接啊,找本书好好看看,很容易理解
    select A.BAG_NO1,
           A.AWB_NO,
           A.TEMP_NO,
           B.OUT_DATE,
           A.SHPR_NAME,
           A.BUSINESS_ATTN,
           A.SHPR_ADDR,
           A.SHPR_TEL,
           A.CNEE_NAME,
           A.CNEE_ADDR,
           A.CNEE_TEL,
           A.CMDTY_NAME,
           A.PKG,
           A.GW,
           A.CLASS,
           A.CLEAR_CMP,
           A.AWB_DATE,
           A.ORIGIN_STN,
           A.DEST_STN,
           A.CCN_STN,
           A.STN_TIME
      from EHU_AWB A, EHU_CNL B
     where A.CNL_NO = B.CNL_NO(+)
     order by A.AWB_DATE desc
      

  2.   

    A,B 
    左连       A所有记录   ,   B与A.相关记录(没有则null) 
    右边       B所有记录   ,   A与B.相关记录(没有则null) 
    Full   外连   A所有记录+B.所有记录双方没有则   null  
      

  3.   

    用右连接或全连接
    select * from EHU_AWB A right join EHU_CNL B on A.CNL_NO = B.CNL_NO

    select * from EHU_AWB A full join EHU_CNL B on A.CNL_NO = B.CNL_NO
      

  4.   

    我試過用左連接了,還是一樣,查不到資料!你給我的這個也一樣,查詢不到A.CNL_NO IS NULL的
      

  5.   

    那你在后面加个union all select A.* from EHU_AWB A where A.CNL_NO IS NULL