logo

AKTUALIZACJA SQL za pomocą JOIN

DOŁĄCZ DO AKTUALIZACJI SQL oznacza, że ​​zaktualizujemy jedną tabelę przy użyciu innej tabeli i warunku złączenia.

Weźmy przykładowy stół klienta. Zaktualizowałem tabelę klientów, która zawiera najnowsze dane klienta z innego systemu źródłowego. Chcę zaktualizować tabelę klientów o najnowsze dane. W takim przypadku wykonam złączenie między tabelą docelową a tabelą źródłową za pomocą złączenia na identyfikatorze klienta.

Zobaczmy składnia zapytania SQL UPDATE z instrukcją JOIN.

 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 

Jak używać wielu tabel w instrukcji SQL UPDATE za pomocą JOIN

Weźmy dwie tabele, tabelę 1 i tabelę 2.

Utwórz tabelę 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' 

Utwórz tabelę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' 

Teraz sprawdź zawartość tabeli.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
Kol 1Kol 2Kol 3
11jedenaściePierwszy
2jedenaście12Drugi
3dwadzieścia jeden 13 Trzeci
431 14 Czwarty

Kol 1Kol 2Kol 3
11dwadzieścia jedenDwa jeden
2jedenaście22Dwa dwa
3dwadzieścia jeden 23 Dwa trzy
431 24 Dwa cztery

Naszym wymaganiem jest tabela 2 zawierająca dwa wiersze, w których Kol. 1 wynosi 21 i 31. Chcemy zaktualizować wartość z tabeli 2 do tabeli 1 dla wierszy, w których Kol. 1 wynosi 21 i 31.

Chcemy także zaktualizować tylko wartości Col 2 i Col 3.

Najprostszym i najczęstszym sposobem jest użycie klauzuli Join w instrukcji update i użycie wielu tabel w instrukcji 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) 

Sprawdź zawartość tabeli

WYBIERZ Z tabeli 1

WYBIERZ Z tabeli 2

Kol 1Kol 2Kol 3
11jedenaściePierwszy
2jedenaście12Drugi
3dwadzieścia jeden 23 Dwa trzy
431 24 Dwa cztery

Kol 1Kol 2Kol 3
11dwadzieścia jedenPierwszy
2jedenaście22Drugi
3dwadzieścia jeden 23 Dwa trzy
431 24 Dwa cztery

Tutaj widzimy, że użycie klauzuli Join w instrukcji aktualizacji. Połączyliśmy dwie tabele za pomocą klauzuli Join.