Я задал вопрос и получил этот ответ, который помог.
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 таблицы соединения в UPDATE
заявлении? и каков правильный синтаксис для этого? Спасибо. Я делаю ...
JOIN tableB, tableA
JOIN tableB JOIN tableA
JOIN
и егоON
условие, как вSELECT
запросе.UPDATE t1 JOIN t2 ON t1.id = t2.t1_id JOIN t3 ON t3.id = t2.t3_id SET t1.col = 'newval'
Ответы:
ответ
yes
вы можетепопробуй так
РЕДАКТИРОВАТЬ:
Для общего обновления присоединиться:
источник
UPDATE table A JOIN table B ON {join data} JOIN table C ON {join data} JOIN {more join tables} SET A.column = {expression}
(простите, если этот проклятый редактор не позволит мне вводить новые строки без полной записи)WHERE
?? ИлиWHERE
это невозможно?Альтернативный способ достижения того же результата - вообще не использовать
JOIN
ключевое слово.источник
UPDATE TABLE_A, TABLE_B SET TABLE_A.column_c = TABLE_A.column_c +1 WHERE TABLE_A.join_col = TABLE_B.join_col
JOIN
то же самое, чтоSELECT * FROM TABLE_A, TABLE_B ...
делаетUPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition]
далее в руководстве говорится: «В этомtable_references
разделе перечислены таблицы, участвующие в объединении. Его синтаксис описан в разделе 13.2.9.2, Синтаксис JOIN ».Ниже приведен запрос на обновление, который включает
JOIN
&WHERE
оба. Таким же образом мы можем использовать несколько выражений join / where, надеюсь, это поможет вам:источник
Альтернативный генеральный план, который я добавляю только как независимый ответ, потому что взорванный «комментарий к ответу» не будет переносить новые строки без публикации всего редактирования, даже если он еще не закончен.
Пример:
источник
Для примера PostgreSQL:
источник