SQL AKTUALIZÁCIA PRIPOJENIA znamená, že aktualizujeme jednu tabuľku pomocou inej tabuľky a podmienky spojenia.
Vezmime si príklad tabuľky zákazníkov. Aktualizoval som tabuľku zákazníkov, ktorá obsahuje najnovšie podrobnosti o zákazníkoch z iného zdrojového systému. Chcem aktualizovať tabuľku zákazníkov najnovšími údajmi. V takom prípade vykonám spojenie medzi cieľovou tabuľkou a zdrojovou tabuľkou pomocou spojenia na ID zákazníka.
Pozrime sa na syntax SQL UPDATE dotazu s príkazom 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
Ako používať viacero tabuliek v príkaze SQL UPDATE s JOIN
Zoberme si dve tabuľky, tabuľku 1 a tabuľku 2.
Vytvorenie tabuľky 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'
Vytvorenie tabuľky 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 skontrolujte obsah v tabuľke.
SELECT * FROM table_1
SELECT * FROM table_2
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | jedenásť | najprv |
2 | jedenásť | 12 | Po druhé |
3 | dvadsaťjeden | 13 | Po tretie |
4 | 31 | 14 | Po štvrté |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | dvadsaťjeden | Dva-jeden |
2 | jedenásť | 22 | Dva-dva |
3 | dvadsaťjeden | 23 | Dva tri |
4 | 31 | 24 | Dva-štyri |
Našou požiadavkou je, aby sme mali tabuľku 2, ktorá má dva riadky, kde stĺpec 1 je 21 a 31. Chceme aktualizovať hodnotu z tabuľky 2 do tabuľky 1 pre riadky, kde stĺpec 1 je 21 a 31.
Chceme aktualizovať len hodnoty Col 2 a Col 3.
Najjednoduchším a najbežnejším spôsobom je použitie klauzuly spojenia vo vyhlásení o aktualizácii a použitie viacerých tabuliek v príkaze aktualizácie.
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)
Skontrolujte obsah tabuľky
VYBERTE Z tabuľky 1
VYBERTE Z tabuľky 2
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | jedenásť | najprv |
2 | jedenásť | 12 | Po druhé |
3 | dvadsaťjeden | 23 | Dva tri |
4 | 31 | 24 | Dva-Štyri |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | dvadsaťjeden | najprv |
2 | jedenásť | 22 | Po druhé |
3 | dvadsaťjeden | 23 | Dva tri |
4 | 31 | 24 | Dva-štyri |
Tu vidíme, že sa používa klauzula spojenia v aktualizačnom vyhlásení. Zlúčili sme dve tabuľky pomocou klauzuly spojenia.