Удаление (деактивация) пустых категорий

-faqer-

Я только учусь
Удаление (деактивация) пустых категорий

Есть две таблицы

Категории
id|title|onoff

Подкатегории
id|cat|title

Допустим есть пять категорий
с первой соотнесено 5 подкатегорий
с третье 3
с пятой 1

Соответственн во второй и четвертой вообще нет подкатегорий

Можно ли как-то одним запросом поставить для пустых категорий onoff = 0

Не хочу считать сначала количество подкатегорий в категориях
А потом проходиться по категориям и ставить им onoff = 0 в том случе если количество подкатегорий равно 0

Заранее благодарю
 

alpine

Новичок
-faqer-
SELECT VERSION() ?

-~{}~ 24.08.06 23:44:

Попробуй так:
[sql]
UPDATE `categories` as c LEFT JOIN `subcategories` as s ON c.`id`=s.`cat` SET c.`onoff` = 0 WHERE s.`id` IS NULL
[/sql]
 

-faqer-

Я только учусь
На локальнике
4.0.12-nt

На хосте
5.0.22-log
На хосте пока не пробовал но на локальнике не идет
 

zerkms

TDD infected
Команда форума
-faqer-
dev.mysql.com/doc/refman/4.1/en/update.html
почитай, там есть

ps:
Код:
alpine
True inside

На форуме с: May 2004
Cообщений: 666
аццкий сотона ;)
 

NiGhT_GhOsT

Новичок
Re: Удаление (деактивация) пустых категорий

Автор оригинала: -faqer-
Не хочу считать сначала количество подкатегорий в категориях
А потом проходиться по категориям и ставить им onoff = 0 в том случе если количество подкатегорий равно 0
Мне кажется правильнее хотеть =)
Инче, по моему мнению, нарушается логика....
 

vonica

Новичок
Автор оригинала: alpine

Попробуй так:
[sql]
UPDATE `categories` as c LEFT JOIN `subcategories` as s ON c.`id`=s.`cat` SET c.`onoff` = 0 WHERE s.`id` IS NULL
[/sql]
Опечаточка, так будет правильно
[sql]
UPDATE `categories` as c LEFT JOIN `subcategories` as s ON c.`id`=s.`id` SET c.`onoff` = 0 WHERE s.`id` IS NULL
[/sql]
 
Сверху