gpt4 book ai didi

sql - 如何在OUTER JOIN语句中编写子查询

转载 作者:行者123 更新时间:2023-12-03 07:56:41 24 4
gpt4 key购买 nike

我想加入两个表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 != ''

关于sql - 如何在OUTER JOIN语句中编写子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com