logo

СКЛ УПДАТЕ са ЈОИН

СКЛ УПДАТЕ ЈОИН значи да ћемо ажурирати једну табелу користећи другу табелу и спојити услов.

Узмимо пример табеле купаца. Ажурирао сам табелу купаца која садржи најновије податке о клијентима из другог изворног система. Желим да ажурирам табелу купаца најновијим подацима. У том случају, извршићу спајање између циљне табеле и изворне табеле користећи спајање на ИД-у корисника.

Хајде да видимо синтаксе СКЛ УПДАТЕ упита са ЈОИН наредбом.

 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 

Како користити више табела у СКЛ УПДАТЕ изјави са ЈОИН

Узмимо две табеле, табелу 1 и табелу 2.

Креирајте табелу 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' 

Креирајте табелу 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' 

Сада проверите садржај табеле.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
Кол 1Кол 2Кол 3
11ЈеданаестПрви
2Једанаест12Друго
3двадесет један 13 Треће
431 14 Четврто

Кол 1Кол 2Кол 3
11двадесет једанДва-Један
2Једанаест22Два-два
3двадесет један 23 Два, три
431 24 Два-Четири

Наш захтев је да имамо табелу 2 која има два реда где је колона 1 21 и 31. Желимо да ажурирамо вредност из табеле 2 у табелу 1 за редове у којима је колона 1 21 и 31.

Такође желимо да ажурирамо вредности само за Цол 2 и Цол 3.

Најлакши и најчешћи начин је да користите клаузулу за спајање у изјави за ажурирање и користите више табела у изјави за ажурирање.

 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) 

Проверите садржај табеле

ИЗАБЕРИ ИЗ табеле 1

ИЗАБЕРИ ИЗ табеле 2

Кол 1Кол 2Кол 3
11ЈеданаестПрви
2Једанаест12Друго
3двадесет један 23 Два, три
431 24 Два-Четири

Кол 1Кол 2Кол 3
11двадесет једанПрви
2Једанаест22Друго
3двадесет један 23 Два, три
431 24 Два-Четири

Овде можемо видети да користите клаузулу за спајање у изјави за ажурирање. Спојили смо две табеле употребом клаузуле спајања.