logo

SQL АКТУАЛИЗИРАНЕ с JOIN

SQL АКТУАЛИЗАЦИЯ ПРИСЪЕДИНЯВАНЕ означава, че ще актуализираме една таблица, използвайки друга таблица и условие за присъединяване.

Нека вземем пример за клиентска таблица. Актуализирах таблица с клиенти, която съдържа най-новите подробности за клиента от друга изходна система. Искам да актуализирам клиентската таблица с най-новите данни. В такъв случай ще изпълня обединяване между целевата таблица и изходната таблица, като използвам обединяване на ИД на клиента.

Нека да видим синтаксис на SQL UPDATE заявка с оператор 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 

Как да използвате множество таблици в оператора SQL UPDATE с JOIN

Нека вземем две маси, таблица 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 Две-Четири

Тук можем да видим, че използваме клауза за присъединяване в израза за актуализиране. Обединихме две таблици с помощта на клауза за присъединяване.