SQL UPDATE JOIN înseamnă că vom actualiza un tabel folosind un alt tabel și vom alătura condiția.
Să luăm un exemplu de tabel pentru clienți. Am actualizat tabelul de clienți care conține cele mai recente detalii despre clienți dintr-un alt sistem sursă. Doresc să actualizez tabelul clienților cu cele mai recente date. În acest caz, voi efectua îmbinarea între tabelul țintă și tabelul sursă folosind join on ID-ul clientului.
Să vedem sintaxă de interogare SQL UPDATE cu instrucțiunea JOIN.
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
Cum să utilizați mai multe tabele în instrucțiunea SQL UPDATE cu JOIN
Să luăm două tabele, tabelul 1 și tabelul 2.
Creați tabelul 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'
Creați tabelul 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'
Acum verificați conținutul din tabel.
SELECT * FROM table_1
SELECT * FROM table_2
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | unsprezece | Primul |
2 | unsprezece | 12 | Al doilea |
3 | douăzeci și unu | 13 | Al treilea |
4 | 31 | 14 | Al patrulea |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | douăzeci și unu | Doi unu |
2 | unsprezece | 22 | Doi-Doi |
3 | douăzeci și unu | 23 | Doi trei |
4 | 31 | 24 | Doi-Patru |
Cerința noastră este să avem tabelul 2 care să aibă două rânduri în care Col 1 este 21 și 31. Dorim să actualizăm valoarea din tabelul 2 în tabelul 1 pentru rândurile în care Col 1 este 21 și 31.
Dorim să actualizăm, de asemenea, doar valorile Col 2 și Col 3.
Cea mai simplă și comună modalitate este de a folosi clauza join în instrucțiunea de actualizare și de a folosi mai multe tabele în instrucțiunea de actualizare.
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)
Verificați conținutul tabelului
SELECTAȚI DIN tabelul 1
SELECTAȚI DIN tabelul 2
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | unsprezece | Primul |
2 | unsprezece | 12 | Al doilea |
3 | douăzeci și unu | 23 | Doi trei |
4 | 31 | 24 | Doi-Patru |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | douăzeci și unu | Primul |
2 | unsprezece | 22 | Al doilea |
3 | douăzeci și unu | 23 | Doi trei |
4 | 31 | 24 | Doi-Patru |
Aici putem vedea că folosirea clauzei join în declarația de actualizare. Am îmbinat două tabele prin utilizarea clauzei join.