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.