![](/img/trans.png)
[英]How to update oracle table in Python using data from another table
[英]Update one table using data from another table - Oracle
這是我的試用查詢。 我正在嘗試使用基於person_id的ADDR
的相應數據更新TABLE1
表。 這下面說缺少SET關鍵字。
UPDATE TABLE1 CFI
INNER JOIN
(
SELECT ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, ZIP FROM ADDR WHERE PERSON_ID = CFI.PERSON_ID AND STATUS = 'Active'
) AS ADDR_DATA
SET CFI.PAYEE_ADDRESS1 = ADDR_DATA.ADDRESS_LINE1,
CFI.PAYEE_ADDRESS2 = ADDR_DATA.ADDRESS_LINE2,
CFI.PAYEE_CITY= ADDR_DATA.CITY,
CFI.PAYEE_STATE_PROVINCE = ADDR_DATA.STATE_PROVINCE,
CFI.PAYEE_POSTALCODE = ADDR_DATA.ZIP,
CFI.PAYEE_COUNTRY_CODE = 'USA'
WHERE CFI.CUSTOMER_INSTITUTION_ID = 966362 AND CFI.PERSON_ID = ADDR_DATA.PERSON_ID;
請幫忙。 提前致謝。
那就是
UPDATE TABLE1 CFI
SET (PAYEE_ADDRESS1, PAYEE_ADDRESS2, PAYEE_CITY, PAYEE_STATE_PROVINCE, PAYEE_POSTALCODE, PAYEE_COUNTRY_CODE) =
(SELECT ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, ZIP, 'USA' FROM ADDR WHERE PERSON_ID = CFI.PERSON_ID AND STATUS = 'Active')
WHERE CFI.CUSTOMER_INSTITUTION_ID = 966362;
編輯:錯誤修復(希望)
MERGE INTO TABLE1
USING (
SELECT PERSON_ID,
ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, ZIP
FROM ADDR
WHERE STATUS = 'Active'
) ADDR_DATA
ON TABLE1.PERSON_ID = ADDR_DATA.PERSON_ID
AND TABLE1.CUSTOMER_INSTITUTION_ID = 966362
WHEN MATCHED THEN
UPDATE
SET PAYEE_ADDRESS1 = ADDR_DATA.ADDRESS_LINE1,
PAYEE_ADDRESS2 = ADDR_DATA.ADDRESS_LINE2,
PAYEE_CITY = ADDR_DATA.CITY,
PAYEE_STATE_PROVINCE = ADDR_DATA.STATE_PROVINCE,
PAYEE_POSTALCODE = ADDR_DATA.ZIP,
PAYEE_COUNTRY_CODE = 'USA';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.