2012-03-12 69 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