Оператор UPDATE с использованием WHERE из 2 таблиц
Ищу несколько советов о том, как выполнить обновление таблицы, но где мои 2 оператора WHERE взяты из разных таблиц. Вот что я думаю:
UPDATE table1
SET table1.t1field=('new parameter');
FROM table1
WHERE table1.t1field > ('parameter')
INNER JOIN
table 2
ON table2.t2field = ('my other parameter');
По сути, я хочу обновить X, где X = myparameter (из таблицы 1) и myparameter2 (из таблицы 2).
Я правильно понял синтаксис? Если после нового параметра я удаляю точку с запятой, я получаю ошибку "Команда SQL не завершена должным образом", но, оставив ее, я думаю, что она пытается обновить все в таблице! Очевидно, что я не хочу этого, я хочу, чтобы он обновлял этот параметр, если он соответствует 2 критериям.
Спасибо за любую помощь, которую вы можете оказать.
2 ответа
Правильный синтаксис для запросов на обновление с объединением следующий:
UPDATE t1
SET t1.[column]=[value]
FROM table1 t1 INNER JOIN table2 t2 ON [join condition]
WHERE [conditions]
Это должно быть что-то вроде следующего:
UPDATE table1
INNER JOIN table2
ON table2.join_field = table1.join_field
SET table1.t1field=('new parameter'), table2.t2field = ('my other parameter')
FROM table1
WHERE table1.t1field > ('parameter');