Как сделать 3 таблицы JOIN в запросе UPDATE?
Я задал вопрос и получил этот ответ, который помог.
UPDATE TABLE_A a JOIN TABLE_B b
ON a.join_col = b.join_col AND a.column_a = b.column_b
SET a.column_c = a.column_c + 1
Теперь я хочу сделать это, если задействованы 3 таблицы
что-то вроде этого.
UPDATE tableC c JOIN tableB b JOIN tableA a
Мой вопрос в основном... возможно ли это сделать 3 таблицы join в инструкции UPDATE
? и для чего это правильный синтаксис? Спасибо. Я делаю...
JOIN tableB, tableA
JOIN tableB JOIN tableA
Ответы
Ответ 1
ответ yes
вы можете
попробуй так:
UPDATE TABLE_A a
JOIN TABLE_B b ON a.join_col = b.join_col AND a.column_a = b.column_b
JOIN TABLE_C c ON [condition]
SET a.column_c = a.column_c + 1
EDIT:
Для общего обновления:
UPDATE TABLEA a
JOIN TABLEB b ON a.join_colA = b.join_colB
SET a.columnToUpdate = [something]
Ответ 2
Альтернативный способ достичь того же результата - не использовать ключевое слово JOIN
вообще.
UPDATE TABLE_A, TABLE_B
SET TABLE_A.column_c = TABLE_B.column_c + 1
WHERE TABLE_A.join_col = TABLE_B.join_col
Ответ 3
Ниже представлен запрос обновления, который включает в себя JOIN
и WHERE
оба. Точно так же мы можем использовать несколько предложений join/where, надеюсь, это вам поможет: -
UPDATE opportunities_cstm oc JOIN opportunities o ON oc.id_c = o.id
SET oc.forecast_stage_c = 'APX'
WHERE o.deleted = 0
AND o.sales_stage IN('ABC','PQR','XYZ')
Ответ 4
Альтернативный общий план, который я добавляю только как независимый ответ, потому что взорванный "комментарий к ответу" не будет принимать новые строки без публикации всего редактирования, даже если он еще не закончен.
UPDATE table A
JOIN table B ON {join fields}
JOIN table C ON {join fields}
JOIN {as many tables as you need}
SET A.column = {expression}
Пример:
UPDATE person P
JOIN address A ON P.home_address_id = A.id
JOIN city C ON A.city_id = C.id
SET P.home_zip = C.zipcode;