SQL AŽURIRANJE s JOIN

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.