sql >> データベース >  >> RDS >> Oracle

Oracleで内部結合を使用して更新する方法

    このシンタックスは、OracleSQLでは機能しません。

    Oracleでは、テーブルが「キー保存」されている場合、つまり次のように結合を更新できます。

    UPDATE (SELECT a.val_a, b.val_b
              FROM table a
              JOIN table b ON a.b_pk = b.b_pk)
       SET val_a = val_b
    

    b_pkと仮定します bの主キーです 、ここでは、Aの各行に最大であるため、結合は更新可能です。 Bから1行であるため、更新は決定論的です。

    あなたの場合、更新された値は別のテーブルに依存しないため、次のようなEXIST条件で単純な更新を使用できます。

    UPDATE mytable t
       SET t.VALUE = 'value'
     WHERE EXISTS 
           (SELECT NULL
              FROM tableb b
             INNER JOIN tablec c ON c.id = b.id
             INNER JOIN tabled d ON d.id = c.id
             WHERE t.id = b.id
               AND d.key = 1)
    


    1. PostgreSQLのデータベースにテキストデータをロードする方法はありますか?

    2. SQLでの日時から合計分まで

    3. 時間をiPhoneデバイスのタイムゾーンに変換するにはどうすればよいですか?

    4. AndroidでPhoneGap/Cordovaを使用して事前入力されたSQLiteデータベースにアクセスできません