2014-03-25 25 views
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'; 

有誰知道正確的方式做到這一點?

謝謝!

回答

0

以下是針對您的問題的快速解決方法。

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') 

希望這可以幫助!

-1

您必須先引用第二個表,然後才能使用它。您可以使用子查詢:

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。

相關問題