2012-03-12 75 views
0

我正在研究一個DB2存儲過程,並且在獲取我想要的結果時遇到了一些麻煩。以下查詢的問題是,它不返回表A中未傳遞最終where子句的行。我希望接收來自表A的符合第一個WHERE子句的所有行(WHERE A.GENRC_CD_TYPE ='MDAA')。然後,爲每個行添加表B的電子郵件列(WHERE(A.DESC)= B.MATL_PLNR_ID)。SQL DB2有條件選擇

SELECT A.GENRC_CD, 
      A.DESC_30, 
      A.DOL, 
      A.DLU, 
      A.LU_LID, 
      B.EMAIL_ID_50 
    FROM GENRCCD A, 
      MPPLNR B 
    WHERE A.GENRC_CD_TYPE = 'MDAA' 
    AND (A.DESC_30) = B.MATL_PLNR_ID; 

任何幫助非常感謝,謝謝!

回答

5

然後,你需要的是一個LEFT JOIN:

SELECT A.GENRC_CD, 
     A.DESC_30, 
     A.DOL, 
     A.DLU, 
     A.LU_LID, 
     B.EMAIL_ID_50 
FROM GENRCCD A LEFT JOIN 
     MPPLNR B on A.DESC_30=B.MATL_PLNR_ID 
WHERE A.GENRC_CD_TYPE = 'MDAA' 
+0

大,謝謝你的小費! – Ted 2012-03-12 20:27:08