1
我需要更新表A上的所有行,其中A.id = B.id和B.code是某個值。如何使用Oracle鏈接更新語句中的表?
喜歡的東西:
UPDATE table_a
SET processed = 'Y'
WHERE table_a.id = table_b.id AND
table_b.code = 'ABC';
有誰知道正確的方式做到這一點?
謝謝!
我需要更新表A上的所有行,其中A.id = B.id和B.code是某個值。如何使用Oracle鏈接更新語句中的表?
喜歡的東西:
UPDATE table_a
SET processed = 'Y'
WHERE table_a.id = table_b.id AND
table_b.code = 'ABC';
有誰知道正確的方式做到這一點?
謝謝!
以下是針對您的問題的快速解決方法。
UPDATE
(
SELECT
a.processed, a.id
FROM
table_a a,
table_b b
WHERE
a.id = b.id
AND
b.code = 'ABC'
) u
SET u.processed = 'Y'
OR
UPDATE table_a a
SET a.processed = 'Y'
WHERE a.id IN
(SELECT b.id FROM table_b b WHERE b.code = 'ABC')
希望這可以幫助!
您必須先引用第二個表,然後才能使用它。您可以使用子查詢:
UPDATE table_a SET processed = 'Y'
WHERE table_a.id = (SELECT table_b.id FROM table_b WHERE table_b.code = 'ABC');
子選擇返回從表-B滿足下述條件table_b.code =「ABC」 ID列表。更新將影響table_a中的那些行,其中來自subselect的列表中的table_a.id。