0

#Table1uniqueId,と列cpty_id, の2つのテーブルがあります。cpty_code#Table2cpty_idcpty_codeunique_id

#Table1 の uniqueId を更新したい

お気に入り:

update #Table1 
set uniqueId = 
    (uniqeId from #Tabel2 
     where #Tabel2.cpty_id=#Table1.cpty_id 
       and #Table2.cpty_code=#Table1.cpty_code) 

オラクルで選択クエリを更新することでこれを達成する方法(ループを避けたい)

注: それらは両方の表のとuniqueIdの組み合わせに対して1 つだけです。cpty_idcpty_code

4

2 に答える 2

2

の使用JOIN:

UPDATE 
  ( SELECT t1.uniqeId, 
           t2.uniqeId AS newUniqueId
    FROM 
        #Table1 t1
      JOIN 
        #Table2  t2
          ON  t2.cpty_id = t1.cpty_id 
          AND t2.cpty_code = t1.cpty_code
  ) tmp
SET 
    uniqueId = newUniqueId ;

または、コードを少し変更します (警告! これにより、表 2 に関連する行がない場合NULL、 の一部の行に値が入力されます):table.uniqueId

update #Table1 
set uniqueId = 
    (SELECT #Table2.uniqeId from #Table2 
     where #Table2.cpty_id = #Table1.cpty_id 
       and #Table2.cpty_code = #Table1.cpty_code) ;
于 2013-01-07T07:25:41.687 に答える
0

以下のようにしてみてください

update #Table1 
set uniqueId = #Table2.uniqeId 
    (select <column_list> from #Tabel2) table2 
     where #Tabel2.cpty_id=#Table1.cpty_id 
       and #Table2.cpty_code=#Table1.cpty_code
于 2013-01-07T07:26:51.287 に答える