logo

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. oszlop2. oszlop3. oszlop
11tizenegyElső
2tizenegy12Második
3huszonegy 13 Harmadik
431 14 Negyedik

1. oszlop2. oszlop3. oszlop
11huszonegyKettő-Egy
2tizenegy22Kettő-Kettő
3huszonegy 23 Kettő három
431 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. oszlop2. oszlop3. oszlop
11tizenegyElső
2tizenegy12Második
3huszonegy 23 Kettő három
431 24 Kettő-Négy

1. oszlop2. oszlop3. oszlop
11huszonegyElső
2tizenegy22Második
3huszonegy 23 Kettő három
431 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.