logo

SQL OPDATERING med JOIN

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 1Kol 2Kol 3
11elleveFørst
2elleve12Anden
3enogtyve 13 Tredje
431 14 Fjerde

Kol 1Kol 2Kol 3
11enogtyveTo-En
2elleve22To-To
3enogtyve 23 To tre
431 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 1Kol 2Col 3
11elleveFørst
2elleve12Anden
3enogtyve 23 To tre
431 24 To-fire

Kol 1Kol 2Col 3
11enogtyveFørst
2elleve22Anden
3enogtyve 23 To tre
431 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.