我想加入两个表CUSTMR和DEPRMNT。
我需要的是:LEFT OUTER JOIN内有两个或多个带有子查询的表的LEFT OUTER JOIN,如下所示:
表格:CUSTMR,DEPRMNT
查询为:
SELECT cs.CUSID ,dp.DEPID FROM CUSTMR cs LEFT OUTER JOIN ( SELECT dp.DEPID ,dp.DEPNAME FROM DEPRMNT dp WHERE dp.DEPADDRESS = 'TOKYO' ) ON ( dp.DEPID = cs.CUSID AND cs.CUSTNAME = dp.DEPNAME ) WHERE cs.CUSID != ''
这里的子查询是:
SELECT dp.DEPID, dp.DEPNAME FROM DEPRMNT dp WHERE dp.DEPADDRESS = 'TOKYO'
是否可以在LEFT OUTER JOIN内编写这样的子查询?
在我的DB2数据库上运行此查询时出现错误。
您需要在子选择上使用“ correlation id”(“ AS SS”)来引用“ ON”条件下的字段。在子选择内分配的ID在联接中不可用。
SELECT cs.CUSID ,dp.DEPID FROM CUSTMR cs LEFT OUTER JOIN ( SELECT DEPID ,DEPNAME FROM DEPRMNT WHERE dp.DEPADDRESS = 'TOKYO' ) ss ON ( ss.DEPID = cs.CUSID AND ss.DEPNAME = cs.CUSTNAME ) WHERE cs.CUSID != ''