table1の行を、同じデータベースのtable2の他の行で上書きしたいと思います。
たとえば、table1には次のデータがあります。
COL1 | Col2 | Col3 | Col4 | Col5 | idDie
----------------------------------------------
0001 | unknown | unknown | unknown | unknown | frKey1
0002 | unknown | unknown | unknown | unknown | frKey2
0003 | unknown | unknown | unknown | unknown | frKey3
0004 | unknown | unknown | unknown | unknown | frKey4
0005 | unknown | unknown | unknown | unknown | frKey5
0006 | unknown | unknown | unknown | unknown | frKey6
およびtable2:
COL1 | Col4 | Col5 | Col6 | Col7
---------------------------------
0003 | value | value | value | value
0004 | value | value | value | value
0005 | value | value | value | value
したがって、テーブル1のデフォルトデータを、COL1> 0002およびCOL1 <0006の範囲のテーブル2のデータ(テーブル2の列名は同じですが、すべての列がテーブル1とは異なります!ほんの数列)で上書きしたいと思います。
そして、次の形式の別のtable3があります。
idDie | Col22 | Col33 | Col44
frKey1 | 不明| 不明| 不明なfrKey2 | 不明| 不明| 不明なfrKey3 | 不明| 不明| 不明なfrKey4 | 不明| 不明| 不明なfrKey5 | 不明| 不明| 不明なfrKey6 | 不明| 不明| わからない
IDがfrKey3、frKey3、frKey4のダイも上書きする必要があります。これらには、table1に参照、外部キーがあり、table2のCol6およびCol7情報は、table3にコピーする必要のある情報です。
1つのSQLステートメントでそれを行うことは可能ですか?
SQL Serverの場合、必要な更新クエリは次のとおりです。
update t1
set
t1.col4 = t2.col4,
t1.col5 = t2.col5
from table1 t1
join table2 t2 on t1.col1 = t2.col1;
サンプルデータを考えると、Table1は更新後は次のようになります。
COL1 Col2 Col3 Col4 Col5
----------- ------- ------- ------- -------
1 unknown unknown unknown unknown
2 unknown unknown unknown unknown
3 unknown unknown value value
4 unknown unknown value value
5 unknown unknown value value
6 unknown unknown unknown unknown
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加