2011-01-17 10 views
1

テーブル「A」と「B」の2つがあるとします。 A(F1番号、F2番号)、B(F1番号、F2番号)私はこれを行うdmlします: -別のテーブルのフィールドに基づいてテーブル内のフィールドを更新するDMLを書き込む方法はありますか?

A.F1 = B.F1、A.F2 = B.F2を設定するすべての行。

(IE)

場合:DMLは、に更新する必要があり [(1,99)(2100)]

:[(1,34)、(2,67)] B次

A:事前に[(1,99)(2100)]

感謝を!

トリニティ

答えて

1

あなたはちょうどそれのために

UPDATE a 
    SET f2 = (SELECT f2 
       FROM b 
       WHERE a.f1 = b.f1) 
WHERE EXISTS (
    SELECT 1 
     FROM b 
    WHERE a.f1 = b.f1); 
+0

おかげ相関更新を必要とするように聞こえます。 DMLが短くなることは可能ですか?「with」節を使用している可能性がありますか? – trinity

+0

@trinity - 「短い」とはどういう意味ですか? Aの各行がBに一致する行を持つことを保証できる場合は、WHERE句を削除できます。しかし、私はWITH句を使ってどのようにクエリを単純化するのか分かりません。 –

関連する問題