SQL UPDATE JOIN nozīmē, ka mēs atjaunināsim vienu tabulu, izmantojot citu tabulu un pievienosim nosacījumu.
Ņemsim klientu tabulas piemēru. Esmu atjauninājis klientu tabulu, kurā ir jaunākā informācija par klientu no citas avota sistēmas. Es vēlos atjaunināt klientu tabulu ar jaunākajiem datiem. Šādā gadījumā es veicu savienošanu starp mērķa tabulu un avota tabulu, izmantojot klienta ID savienošanu.
Apskatīsim sintakse SQL UPDATE vaicājums ar JOIN priekšrakstu.
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
Kā izmantot vairākas tabulas SQL UPDATE priekšrakstā ar JOIN
Ņemsim divas tabulas, 1. un 2. tabulu.
Izveidot tabulu1
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'
Izveidot tabulu2
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'
Tagad pārbaudiet tabulas saturu.
SELECT * FROM table_1
SELECT * FROM table_2
1. kolonna | 2. kolonna | 3. kolonna | |
---|---|---|---|
1 | 1 | vienpadsmit | Pirmkārt |
2 | vienpadsmit | 12 | Otrkārt |
3 | divdesmitviens | 13 | Trešais |
4 | 31 | 14 | Ceturtais |
1. kolonna | 2. kolonna | 3. kolonna | |
---|---|---|---|
1 | 1 | divdesmitviens | Divi-Viens |
2 | vienpadsmit | 22 | Divi-Divi |
3 | divdesmitviens | 23 | Divi-Trīs |
4 | 31 | 24 | Divi-Četri |
Mūsu prasība ir tāda, ka mums ir jābūt 2. tabulai, kurā ir divas rindas, kur 1. kolonna ir 21 un 31. Mēs vēlamies atjaunināt vērtību no 2. tabulas uz 1. tabulu tām rindām, kurās 1. kolonna ir 21 un 31.
Mēs vēlamies arī atjaunināt tikai 2. un 3. kolonnas vērtības.
Vienkāršākais un izplatītākais veids ir izmantot pievienošanās klauzulu atjaunināšanas priekšrakstā un izmantot vairākas tabulas atjaunināšanas priekšrakstā.
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)
Pārbaudiet tabulas saturu
IZVĒLĒTIES NO 1. tabulas
IZVĒLĒTIES NO 2. tabulas
1. kolonna | 2. kolonna | 3. kolonna | |
---|---|---|---|
1 | 1 | vienpadsmit | Pirmkārt |
2 | vienpadsmit | 12 | Otrkārt |
3 | divdesmitviens | 23 | Divi-Trīs |
4 | 31 | 24 | Divi-Četri |
1. kolonna | 2. kolonna | 3. kolonna | |
---|---|---|---|
1 | 1 | divdesmitviens | Pirmkārt |
2 | vienpadsmit | 22 | Otrkārt |
3 | divdesmitviens | 23 | Divi-Trīs |
4 | 31 | 24 | Divi-Četri |
Šeit mēs redzam, ka atjaunināšanas paziņojumā tiek izmantota pievienošanās klauzula. Mēs esam apvienojuši divas tabulas, izmantojot savienošanas klauzulu.