У нас есть 3-е таблицы
1-я ad_table содержит список объявлений спецтехники (id, title, gruz_kuzov)
id — идентификатор
title — описание объявления
gruz_kuzov — Грузоподьемность кузова
2-я adcat_table содержит список связи айди обьявления и айди категории спецтехники (id_ob, id_cat)
id_ad — идентификатор объявления
id_cat — ижентификатор категории
3-я cat_table, это сами категории (id, name)
id — идентифаикатор категории
name — название категории
Теперь допустим у нас была категори «Автокран» с идентификатором равным 34 и все пользователи записывали грузоподъемность крана в поле грузоподъемность кузова.
И после долгих раздумий и карания себя (почему мы сделали это раньше), мы решаем внести новое поле «Грузоподьемность крана» …
И так мы добавили новый столбец в нашу таблицу объявлений и в Автокране выводим теперь его вместо старого грузоподъемность кузова.
У нас получилось следующее ad_table (id, title, gruz_kuzov, gruz_kran).
Но теперь у нас встал вопрос о том что у всех старых пользователей данные остались в старом поле, а новое у них просто пустует …
Для этого нам нужно перенести все данные из старого поля в новое у всех объявлений которые относятся к категории Автокран.
Вот тут то нам и поможет совмешение UPDATE и INNER JOIN.
UPDATE ad_table
INNER JOIN adcat_table ON ad_table.id = adcat_table.id_ad
SET ad_table.gruz_kran = ad_table.gruz_kuzov
WHERE adcat_table.id_cat = 34