gpt4 book ai didi

sql - 甲骨文 : How to update multiple columns from different table?

转载 作者:行者123 更新时间:2023-12-02 13:59:17 25 4
gpt4 key购买 nike

我正在使用 Oracle 数据库,并且有时会更新其他表中的字段。我的问题是它正在更新所有记录而不是指定的条件。例如,我试图从 ADDRESS 表更新 EMPLOYEE 表中的 perm_address 和 temp_address 。现在,我正在使用下面的查询。但是,它正在更新所有记录。

UPDATE EMPLOYEE EMP
SET (EMP.PERM_ADDRESS, EMP.TEMP_ADDRESS) =
(SELECT ADDR.PERM_ADDR,ADDR.TEMP_ADDR
FROM ADDRESS ADDR
WHERE ADDR.ID=EMP.ADDRESS_ID
);

在Oracle中如何处理这种情况?通常,如何处理从多个表到源表的更新?

提前致谢......

最佳答案

添加 WHERE 子句以仅更新匹配的记录:

UPDATE EMPLOYEE EMP
SET (EMP.PERM_ADDRESS, EMP.TEMP_ADDRESS) =
(SELECT ADDR.PERM_ADDR, ADDR.TEMP_ADDR
FROM ADDRESS ADDR
WHERE ADDR.ID = EMP.ADDRESS_ID
)
WHERE EXISTS (SELECT 1 FROM ADDRESS ADDR WHERE ADDR.ID = EMP.ADDRESS_ID);

关于sql - 甲骨文 : How to update multiple columns from different table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37469361/

25 4 0