SQL OPPDATERING BLI MED betyr at vi vil oppdatere en tabell ved å bruke en annen tabell og sammenføyningsbetingelse.
La oss ta et eksempel på et kundebord. Jeg har oppdatert kundetabell som inneholder siste kundeinformasjon fra et annet kildesystem. Jeg ønsker å oppdatere kundetabellen med siste data. I slike tilfeller vil jeg utføre sammenføyning mellom måltabell og kildetabell ved hjelp av sammenføyning på kunde-ID.
La oss se syntaks av SQL UPDATE-spørring med JOIN-setning.
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
Hvordan bruke flere tabeller i SQL UPDATE-setning med JOIN
La oss ta to tabeller, tabell 1 og tabell 2.
Lag tabell 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'
Lag tabell 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'
Sjekk nå innholdet i tabellen.
SELECT * FROM table_1
SELECT * FROM table_2
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | elleve | Først |
2 | elleve | 12 | Sekund |
3 | tjueen | 1. 3 | Tredje |
4 | 31 | 14 | Fjerde |
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | tjueen | To-En |
2 | elleve | 22 | To-to |
3 | tjueen | 23 | To tre |
4 | 31 | 24 | To-fire |
Vårt krav er at vi har tabell 2 som har to rader der Kol 1 er 21 og 31. Vi ønsker å oppdatere verdien fra tabell 2 til tabell 1 for radene hvor Kol 1 er 21 og 31.
Vi ønsker også kun å oppdatere verdiene til Col 2 og Col 3.
Den enkleste og vanligste måten er å bruke join-klausulen i oppdateringssetningen og bruke flere tabeller i oppdateringssetningen.
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)
Sjekk innholdet i tabellen
VELG FRA tabell 1
VELG FRA tabell 2
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | elleve | Først |
2 | elleve | 12 | Sekund |
3 | tjueen | 23 | To tre |
4 | 31 | 24 | To-fire |
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | tjueen | Først |
2 | elleve | 22 | Sekund |
3 | tjueen | 23 | To tre |
4 | 31 | 24 | To-fire |
Her kan vi se at bruk av join-klausul i oppdateringserklæring. Vi har slått sammen to tabeller ved bruk av join-klausul.