ORACLE UPDATE 使用 FULL OUTER JOIN 和子查询

问题描述 投票:0回答:0

我有以下问题

SELECT DISTINCT EPS_PROPOSAL.PROPOSAL_NUMBER FROM PROP_ADMIN, EPS_PROPOSAL
    FULL OUTER JOIN PROP_ADMIN 
    ON EPS_PROPOSAL.PROPOSAL_NUMBER = PROP_ADMIN.PROPOSAL_NUMBER
    WHERE EPS_PROPOSAL.SPONSOR_CODE = 100728 AND 
        (EPS_PROPOSAL.STATUS_CODE = 3 OR EPS_PROPOSAL.STATUS_CODE = 6)
PROPOSAL_NUMBER    FUNDING_CODE
    4214              (null)
    3079              (null)
    3212              (null)
      .                  .
      .                  .
 TOTAL RECORDS: 339

我正在尝试使用以前使用的

FUNDING_CODE
条件和
F
WHERE
更新为
OUTER JOIN

UPDATE PROP_ADMIN
    SET FUNDING_CODE = 'F'
    WHERE PROPOSAL_NUMBER IN(
       SELECT DISTINCT EPS_PROPOSAL.PROPOSAL_NUMBER FROM PROP_ADMIN, EPS_PROPOSAL
       FULL OUTER JOIN PROP_ADMIN 
       ON EPS_PROPOSAL.PROPOSAL_NUMBER = PROP_ADMIN.PROPOSAL_NUMBER
           WHERE EPS_PROPOSAL.SPONSOR_CODE = 100728 AND 
           (EPS_PROPOSAL.STATUS_CODE = 3 OR EPS_PROPOSAL.STATUS_CODE = 6)

当我运行它时,只有 1 行从我上面的列表中更新。

PROPOSAL_NUMBER     FUNDING_CODE
     4214                F
     3079              (null)
     3212              (null)
      .                  .
      .                  .

如何使

UPDATE
语句在所有行上执行,而不仅仅是从子查询返回的第一行。

oracle join sql-update subquery
© www.soinside.com 2019 - 2024. All rights reserved.