Обновить таблицу по условию из другой
Есть таблица tmp с полями id, d1, d2. Также есть таблица tmp2 с полем tmpid связаны они по полю tmp.id = tmp2.tmpid
Как обновить в таблице tmp поле d1 только для тех записей, которые есть в tmp2 ?
UPDATE Tmp SET d1 = 'No' WHERE tmp.id = tmp2.tmpid
такой запрос почему-то обновляет малую часть лишь 10 записей из Tmp у которых одинаковый id
Ответы (2 шт):
Автор решения: Akina
→ Ссылка
Если не ошибаюсь, то
update Tmp from tmp2 where Tmp.id = tmp2 .tmpid ;
set Tmp.d1 = 'No'
Автор решения: Andrew Holovko
→ Ссылка
UPDATE Tmp SET d1 = 'No' WHERE tmp.id = tmp2.tmpid
Можете использовать join в апдейте.
update tmp t1
join tmp2 t2 on t1.id = t2.tmpid
set t1.d1 = 'No';
Таким образом обновятся только те записи, которые прошли join.