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

それぞれが等しい1つの列に基づいて、別のテーブルのデータで1つのテーブルの行を更新します

    update 
      table1 t1
    set
      (
        t1.column1, 
        t1.column2
          ) = (
        select
          t2.column1, 
          t2.column2
        from
          table2  t2
        where
          t2.column1 = t1.column1
         )
        where exists (
          select 
            null
          from 
            table2 t2
          where 
            t2.column1 = t1.column1
          );
    

    または、これ(t2.column1 <=> t1.column1が多対1であり、それらのいずれかが優れている場合):

    update 
      table1 t1
    set
      (
        t1.column1, 
        t1.column2
          ) = (
        select
          t2.column1, 
          t2.column2
        from
          table2  t2
        where
          t2.column1 = t1.column1
        and
          rownum = 1    
         )
        where exists (
          select 
            null
          from 
            table2 t2
          where 
            t2.column1 = t1.column1
          ); 
    


    1. ユーザーアカウント管理、役割、権限、認証PHPおよびMySQL-パート2

    2. sqlalchemy.exc.NoSuchModuleError:プラグインを読み込めません:sqlalchemy.dialects:postgres

    3. localhostとmysql_connect()の127.0.0.1

    4. MySQLデータベースをインポートおよびエクスポートする方法