SQL OPDATERING JOIN betyder, at vi opdaterer en tabel ved hjælp af en anden tabel og join-tilstand.
Lad os tage et eksempel på et kundebord. Jeg har opdateret kundetabel, der indeholder seneste kundeoplysninger fra et andet kildesystem. Jeg ønsker at opdatere kundetabellen med seneste data. I sådanne tilfælde vil jeg udføre join mellem måltabel og kildetabel ved hjælp af join på kunde-id.
Lad os se syntaks af SQL UPDATE-forespørgsel med JOIN-sætning.
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
Sådan bruger du flere tabeller i SQL UPDATE-sætning med JOIN
Lad os tage to tabeller, tabel 1 og tabel 2.
Opret tabel 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'
Opret tabel 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'
Tjek nu indholdet i tabellen.
SELECT * FROM table_1
SELECT * FROM table_2
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | elleve | Først |
2 | elleve | 12 | Anden |
3 | enogtyve | 13 | Tredje |
4 | 31 | 14 | Fjerde |
Kol 1 | Kol 2 | Kol 3 | |
---|---|---|---|
1 | 1 | enogtyve | To-En |
2 | elleve | 22 | To-To |
3 | enogtyve | 23 | To tre |
4 | 31 | 24 | To-fire |
Vores krav er, at vi har tabel 2, som har to rækker, hvor Kol. 1 er 21 og 31. Vi ønsker at opdatere værdien fra tabel 2 til tabel 1 for rækkerne, hvor Kol. 1 er 21 og 31.
Vi ønsker også kun at opdatere værdierne for Col 2 og Col 3.
Den nemmeste og mest almindelige måde er at bruge join-sætning i opdateringssætningen og bruge flere tabeller i opdateringssætningen.
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)
Tjek indholdet af tabellen
VÆLG FRA tabel 1
VÆLG FRA tabel 2
Kol 1 | Kol 2 | Col 3 | |
---|---|---|---|
1 | 1 | elleve | Først |
2 | elleve | 12 | Anden |
3 | enogtyve | 23 | To tre |
4 | 31 | 24 | To-fire |
Kol 1 | Kol 2 | Col 3 | |
---|---|---|---|
1 | 1 | enogtyve | Først |
2 | elleve | 22 | Anden |
3 | enogtyve | 23 | To tre |
4 | 31 | 24 | To-fire |
Her kan vi se, at brug af join-klausul i opdateringserklæring. Vi har slået to tabeller sammen ved at bruge join-klausulen.