SQL AŽURIRANJE JOIN znači da ćemo ažurirati jednu tablicu koristeći drugu tablicu i uvjet spajanja.
Uzmimo primjer tablice kupaca. Ažurirao sam tablicu kupaca koja sadrži najnovije podatke o klijentima iz drugog izvornog sustava. Želim ažurirati tablicu kupaca najnovijim podacima. U tom slučaju izvršit ću spajanje između ciljne tablice i izvorne tablice pomoću spajanja na ID-u korisnika.
Da vidimo sintaksa SQL UPDATE upita s JOIN naredbom.
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 koristiti više tablica u SQL UPDATE izjavi s JOIN
Uzmimo dvije tablice, tablicu 1 i tablicu 2.
Napravi tablicu1
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'
Napravi tablicu 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'
Sada provjerite sadržaj u tablici.
SELECT * FROM table_1
SELECT * FROM table_2
Kolona 1 | Kolona 2 | Kolona 3 | |
---|---|---|---|
1 | 1 | jedanaest | Prvi |
2 | jedanaest | 12 | Drugi |
3 | dvadeset i jedan | 13 | Treći |
4 | 31 | 14 | Četvrta |
Kolona 1 | Kolona 2 | Kolona 3 | |
---|---|---|---|
1 | 1 | dvadeset i jedan | Dva-Jedan |
2 | jedanaest | 22 | Dva-dva |
3 | dvadeset i jedan | 23 | Dva tri |
4 | 31 | 24 | Dva-četiri |
Naš zahtjev je da imamo tablicu 2 koja ima dva retka u kojima je stupac 1 21 i 31. Želimo ažurirati vrijednost iz tablice 2 u tablicu 1 za retke u kojima je stupac 1 21 i 31.
Također želimo ažurirati samo vrijednosti stupca 2 i stupca 3.
Najlakši i najčešći način je korištenje klauzule spajanja u izjavi za ažuriranje i korištenje više tablica u izjavi za ažuriranje.
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)
Provjerite sadržaj tablice
ODABIR IZ tablice 1
ODABIR IZ tablice 2
Kolona 1 | Kolona 2 | Kolona 3 | |
---|---|---|---|
1 | 1 | jedanaest | Prvi |
2 | jedanaest | 12 | Drugi |
3 | dvadeset i jedan | 23 | Dva tri |
4 | 31 | 24 | Dva-četiri |
Kolona 1 | Kolona 2 | Kolona 3 | |
---|---|---|---|
1 | 1 | dvadeset i jedan | Prvi |
2 | jedanaest | 22 | Drugi |
3 | dvadeset i jedan | 23 | Dva tri |
4 | 31 | 24 | Dva-četiri |
Ovdje možemo vidjeti korištenje klauzule spajanja u izjavi ažuriranja. Spojili smo dvije tablice korištenjem klauzule spajanja.