SQL UPDATE a JOIN segítségével

SQL UPDATE JOIN azt jelenti, hogy frissítünk egy táblát egy másik tábla és csatlakozási feltétel használatával.

Vegyünk egy példát egy ügyféltáblára. Frissítettem az ügyféltáblázatot, amely egy másik forrásrendszerből származó legfrissebb ügyféladatokat tartalmaz. Frissíteni szeretném az ügyféltáblázatot a legfrissebb adatokkal. Ebben az esetben a céltábla és a forrástábla közötti összekapcsolást az ügyfél-azonosítón lévő összekapcsolással fogom végrehajtani.

Lássuk a szintaxis SQL UPDATE lekérdezés JOIN utasítással.

 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  

Több tábla használata az SQL UPDATE utasításban a JOIN használatával

Vegyünk két táblázatot, az 1. és a 2. táblázatot.

Táblázat létrehozása1

 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'  

Táblázat létrehozása2

 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'  

Most ellenőrizze a táblázat tartalmát.

 SELECT * FROM table_1  
 SELECT * FROM table_2  
1. oszlop 2. oszlop 3. oszlop
1 1 tizenegy Első
2 tizenegy 12 Második
3 huszonegy 13 Harmadik
4 31 14 Negyedik

1. oszlop 2. oszlop 3. oszlop
1 1 huszonegy Kettő-Egy
2 tizenegy 22 Kettő-Kettő
3 huszonegy 23 Kettő három
4 31 24 Kettő-Négy

Az a követelmény, hogy rendelkezzünk a 2. táblával, amelynek két sora van, ahol az 1. oszlop 21 és 31. Frissíteni szeretnénk a 2. táblázat értékét az 1. táblázatra azoknál a soroknál, ahol az 1. oszlop 21 és 31.

Frissíteni szeretnénk a 2. oszlop és csak a 3. oszlop értékeit is.

A legegyszerűbb és legáltalánosabb módja a csatlakozási záradék használata az update utasításban, és több tábla használata az update utasításban.

 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)  

Ellenőrizze a táblázat tartalmát

KIVÁLASZTÁS AZ 1. táblázatból

KIVÁLASZTÁS A 2. táblázatból

1. oszlop 2. oszlop 3. oszlop
1 1 tizenegy Első
2 tizenegy 12 Második
3 huszonegy 23 Kettő három
4 31 24 Kettő-Négy

1. oszlop 2. oszlop 3. oszlop
1 1 huszonegy Első
2 tizenegy 22 Második
3 huszonegy 23 Kettő három
4 31 24 Kettő-Négy

Itt láthatjuk, hogy a frissítési utasításban a join záradék használata. Két táblát egyesítettünk az összekapcsolási záradék használatával.