У нас есть 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