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 | |
---|---|---|---|
1 | 1 | единадесет | Първо |
2 | единадесет | 12 | Второ |
3 | двадесет и едно | 13 | трето |
4 | 31 | 14 | Четвърто |
Кол 1 | Кол 2 | Кол 3 | |
---|---|---|---|
1 | 1 | двадесет и едно | Две-Едно |
2 | единадесет | 22 | Две-Две |
3 | двадесет и едно | 23 | Две три |
4 | 31 | 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 | |
---|---|---|---|
1 | 1 | единадесет | Първо |
2 | единадесет | 12 | Второ |
3 | двадесет и едно | 23 | Две три |
4 | 31 | 24 | Две-Четири |
Кол 1 | Кол 2 | Кол 3 | |
---|---|---|---|
1 | 1 | двадесет и едно | Първо |
2 | единадесет | 22 | Второ |
3 | двадесет и едно | 23 | Две три |
4 | 31 | 24 | Две-Четири |
Тук можем да видим, че използваме клауза за присъединяване в израза за актуализиране. Обединихме две таблици с помощта на клауза за присъединяване.