SQL UPDATE JOIN означає, що ми будемо оновлювати одну таблицю за допомогою іншої таблиці та умови з’єднання.
Розглянемо приклад таблиці клієнтів. Я оновив таблицю клієнтів, яка містить останні відомості про клієнтів з іншої вихідної системи. Я хочу оновити таблицю клієнтів останніми даними. У такому випадку я здійсню об’єднання між цільовою та вихідною таблицями за допомогою об’єднання за ідентифікатором клієнта.
Давайте подивимося синтаксис запиту 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 | Два-Чотири |
Тут ми бачимо використання речення приєднання в операторі оновлення. Ми об’єднали дві таблиці за допомогою пункту об’єднання.