logo

SQL UPPDATERING med JOIN

SQL UPPDATERING GÅ MED innebär att vi kommer att uppdatera en tabell med en annan tabell och kopplingsvillkor.

Låt oss ta ett exempel på ett kundbord. Jag har uppdaterat kundtabell som innehåller senaste kundinformation från ett annat källsystem. Jag vill uppdatera kundtabellen med senaste data. I sådana fall kommer jag att utföra join mellan måltabell och källtabell med hjälp av join på kund-ID.

Låt oss se syntax av SQL UPDATE-fråga med JOIN-sats.

 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 

Hur man använder flera tabeller i SQL UPDATE-satsen med JOIN

Låt oss ta två tabeller, tabell 1 och tabell 2.

Skapa tabell1

 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' 

Skapa tabell2

 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' 

Kontrollera nu innehållet i tabellen.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
Kol 1Kol 2Kol 3
11elvaFörst
2elva12Andra
3tjugoett 13 Tredje
431 14 Fjärde

Kol 1Kol 2Kol 3
11tjugoettTvå ett
2elva22Två-Två
3tjugoett 23 Två tre
431 24 Två-fyra

Vårt krav är att vi har tabell 2 som har två rader där Kol 1 är 21 och 31. Vi vill uppdatera värdet från tabell 2 till tabell 1 för raderna där Kol 1 är 21 och 31.

Vi vill också uppdatera värdena för endast Col 2 och Col 3.

Det enklaste och vanligaste sättet är att använda join-satsen i update-satsen och använda flera tabeller i update-satsen.

 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) 

Kontrollera innehållet i tabellen

VÄLJ FRÅN tabell 1

VÄLJ FRÅN tabell 2

Kol 1Kol 2Kol 3
11elvaFörst
2elva12Andra
3tjugoett 23 Två tre
431 24 Två-fyra

Kol 1Kol 2Kol 3
11tjugoettFörst
2elva22Andra
3tjugoett 23 Två tre
431 24 Två-fyra

Här kan vi se att använda join-klausul i uppdateringsutlåtandet. Vi har slagit samman två tabeller genom att använda join-klausulen.