Как можно выполнить такой запрос на чистом SQL, без PHP?

Сейчас есть такой код:
$categoryList = "SELECT `id` FROM `category`;";
$categoryList = mysqli_query($_MS_ID, $categoryList);
while($category = mysqli_fetch_array($categoryList)) {
    mysqli_query($_MS_ID, "UPDATE `category` SET `count` = (SELECT COUNT(`id`) FROM `product` WHERE 
        `category` = {$category['id']} AND `status` = '0') WHERE `id` = {$category['id']};");
}

Он получает все категории и пересчитывает количество свободного товара.

Возможно ли избавится от цикла PHP и реализовать пересчет во всех категориях одним SQL запросом? Если да, то как. Спасибо :-)
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
@VisualIdeas
У вас и так все верно)))) тока чуток додумать - UPDATE же может скока угодно подзапросов делать
UPDATE `category` SET  `category`.`count` = (
    SELECT COUNT(`product`.`id`) 
    FROM `product` 
    WHERE  
    `product`.`category` = `category` .`id` AND  `product`.`status` = '0'
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽