UPDATE и SELECT + DELETE с выборкой из нескольких таблиц
  
Автор:

Обновлять одну таблицу с выборкой из другой просто. Вот реально работающий случай в триггере "user.tr_user_after_update":

UPDATE user_prize_block,prize_fund SET user_prize_block.block="U"
WHERE
 user_prize_block.fund=prize_fund.id AND
 prize_fund.block_same_ip!="N" AND
 prize_fund.block_same_ip_monitor_ip_changes="Y" AND
 prize_fund.active="Y" AND
 user_prize_block.id=NEW.id AND user_prize_block.block="N"

Ещё по теме с LEFT JOIN читать тут: https://stackoverflow.com/questions/1262786/mysql-update-query-based-on-select-query

UPD. Ещё более ранний пример с LEFT JOIN'ом, в mySQL-функции "refresh_company_active_banner".

  UPDATE company
    LEFT JOIN banner ON banner.company=company.id AND banner.active="Y" AND
     (banner.active_campaign="Y" OR 
      (slimit="D" AND start<=CURRENT_DATE AND expire>=DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH)))
   SET has_active_banner_campaign=IF(banner.id IS NULL,"N","Y")
   WHERE IF(comp_id>0 AND comp_id IS NOT NULL, company.id=comp_id, 1);

UPD. Вот ещё удаление из одной таблицы, при выборке из двух:

DELETE category_favorit_audit
FROM category_favorit_audit,mark
WHERE category_favorit_audit.mark=mark.id AND mark.category=698

МеткиМетки:  delete, mysql, select, update

Отправить на E-mailОтправить на E-mail   Версия для печатиВерсия для печати
Комментарии(0)

Пока комментариев нет… Будьте первым кто оставит комментарий по этой теме!

или
Вы можете войти с помощью:
Войти с Facebook Войти с Google Войти с ВКонтакте