logo

JOIN を使用した SQL UPDATE

SQL 更新結合 別のテーブルと結合条件を使用して 1 つのテーブルを更新することを意味します。

顧客テーブルの例を見てみましょう。別のソース システムからの最新の顧客の詳細を含む顧客テーブルを更新しました。顧客テーブルを最新のデータで更新したいと考えています。このような場合は、顧客 ID の結合を使用して、ターゲット テーブルとソース テーブルの間の結合を実行します。

見てみましょう 構文 JOIN ステートメントを使用した SQL UPDATE クエリの。

 UPDATE customer_table INNER JOIN Customer_table ON customer_table.rel_cust_name = customer_table.cust_id SET customer_table.rel_cust_name = customer_table.cust_name 

JOINを使用したSQL UPDATEステートメントで複数のテーブルを使用する方法

2 つのテーブル、テーブル 1 とテーブル 2 を考えてみましょう。

テーブル1の作成

 CREATE TABLE table1 (column1 INT, column2 INT, column3 VARCHAR (100)) INSERT INTO table1 (col1, col2, col3) SELECT 1, 11, 'FIRST' UNION ALL SELECT 11,12, 'SECOND' UNION ALL SELECT 21, 13, 'THIRD' UNION ALL SELECT 31, 14, 'FOURTH' 

テーブル2の作成

 CREATE TABLE table2 (column1 INT, column2 INT, column3 VARCHAR (100)) INSERT INTO table2 (col1, col2, col3) SELECT 1, 21, 'TWO-ONE' UNION ALL SELECT 11, 22, 'TWO-TWO' UNION ALL SELECT 21, 23, 'TWO-THREE' UNION ALL SELECT 31, 24, 'TWO-FOUR' 

次に、表の内容を確認します。

 SELECT * FROM table_1 
 SELECT * FROM table_2 
列 1列 2列 3
11十一初め
2十一122番
321 13 三番目
431 14 第4

列 1列 2列 3
1121ツーワン
2十一22ツーツー
321 23 ツー・スリー
431 24 2-4

要件は、列 1 が 21 と 31 である 2 つの行を持つテーブル 2 があることです。列 1 が 21 と 31 である行の値をテーブル 2 からテーブル 1 に更新したいと考えています。

Col 2 と Col 3 の値のみも更新したいと考えています。

最も簡単で一般的な方法は、update ステートメントで join 句を使用し、update ステートメントで複数のテーブルを使用することです。

 UPDATE table 1 SET Col 2 = t2.Col2, Col 3 = t2.Col3 FROM table1 t1 INNER JOIN table 2 t2 ON t1.Col1 = t2.col1 WHERE t1.Col1 IN (21,31) 

テーブルの内容を確認してください

表 1 から選択

表 2 から選択

列 1列 2列 3
11十一初め
2十一122番
321 23 ツー・スリー
431 24 2-4

列 1列 2列 3
1121初め
2十一222番
321 23 ツー・スリー
431 24 2-4

ここでは、update ステートメントで join 句を使用していることがわかります。 join 句を使用して 2 つのテーブルをマージしました。