PRIDRUŽITEV POSODOBITVE SQL pomeni, da bomo posodobili eno tabelo z drugo tabelo in pogojem združevanja.
Vzemimo primer tabele strank. Posodobil sem tabelo strank, ki vsebuje najnovejše podatke o strankah iz drugega izvornega sistema. Želim posodobiti tabelo strank z najnovejšimi podatki. V takem primeru bom izvedel združevanje med ciljno in izvorno tabelo z uporabo združevanja na ID stranke.
Poglejmo si sintaksa poizvedbe SQL UPDATE s stavkom 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
Kako uporabiti več tabel v stavku SQL UPDATE z JOIN
Vzemimo dve tabeli, tabelo 1 in tabelo 2.
Ustvari tabelo 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'
Ustvari tabelo 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'
Zdaj preverite vsebino v tabeli.
SELECT * FROM table_1
SELECT * FROM table_2
stolpec 1 | stolpec 2 | stolpec 3 | |
---|---|---|---|
1 | 1 | enajst | najprej |
2 | enajst | 12 | drugič |
3 | enaindvajset | 13 | Tretjič |
4 | 31 | 14 | Četrtič |
stolpec 1 | stolpec 2 | stolpec 3 | |
---|---|---|---|
1 | 1 | enaindvajset | Dva-ena |
2 | enajst | 22 | Dva-dva |
3 | enaindvajset | 23 | Dva-tri |
4 | 31 | 24 | Dva-štiri |
Naša zahteva je, da imamo tabelo 2 z dvema vrsticama, kjer je stolpec 1 21 in 31. Želimo posodobiti vrednost iz tabele 2 v tabelo 1 za vrstice, kjer je stolpec 1 21 in 31.
Prav tako želimo posodobiti samo vrednosti stolpca 2 in stolpca 3.
Najlažji in najpogostejši način je uporaba klavzule združevanja v stavku posodobitve in uporaba več tabel v stavku posodobitve.
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)
Preverite vsebino tabele
IZBERI IZ tabele 1
IZBERI IZ tabele 2
stolpec 1 | stolpec 2 | stolpec 3 | |
---|---|---|---|
1 | 1 | enajst | najprej |
2 | enajst | 12 | drugič |
3 | enaindvajset | 23 | Dva-tri |
4 | 31 | 24 | Dva-štiri |
stolpec 1 | stolpec 2 | stolpec 3 | |
---|---|---|---|
1 | 1 | enaindvajset | najprej |
2 | enajst | 22 | drugič |
3 | enaindvajset | 23 | Dva-tri |
4 | 31 | 24 | Dva-štiri |
Tukaj lahko vidimo uporabo klavzule o pridružitvi v izjavi o posodobitvi. Dve tabeli smo združili z uporabo klavzule za združevanje.