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 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | elva | Först |
2 | elva | 12 | Andra |
3 | tjugoett | 13 | Tredje |
4 | 31 | 14 | Fjärde |
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | tjugoett | Två ett |
2 | elva | 22 | Två-Två |
3 | tjugoett | 23 | Två tre |
4 | 31 | 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 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | elva | Först |
2 | elva | 12 | Andra |
3 | tjugoett | 23 | Två tre |
4 | 31 | 24 | Två-fyra |
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | tjugoett | Först |
2 | elva | 22 | Andra |
3 | tjugoett | 23 | Två tre |
4 | 31 | 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.