У меня есть 3 таблицы. Первая таблица это: packs_global_cats В ней есть 3 глобальные категории. Каждая из глобальных категорий имеет свои субкатегории. Таблица с субкатегориями называется: packs_cats. Вот ее структура:
id
global_cat
name
Третья таблица это сами пакеты. Вот их структура:
id cat name
Вопрос.
Как мне посчитать количество субкатегорий, для конкретной глобальной категории, в которой есть пакеты? Начало запроса у меня такое:
"SELECT COUNT(*) FROM packs_cats WHERE global_cat = '$global_cats[id]'"
Данный запрос просто посчитает сколько есть субкатегорий для одной глобальной, но этот запрос не зайдет в таблицу с пакетами и не проверит существуют ли в этих субкатегориях пакеты.
Нужно как то с помощью LEFT JOIN, но я к сожалению не понимаю как. Помогите пожалуйста
Вариант навскидку (возможно, не самый оптимальный по скорости):
SELECT COUNT(DISTINCT c.id)
FROM packs_cats AS c
JOIN packs AS p ON c.id = p.cat
WHERE c.global_cat = <global_cat_id>
– здесь вместо <global_cat_id> нужно подставить ID глобальной категории.
P.S.: Нужен именно JOIN, а не LEFT JOIN, потому что LEFT JOIN выберет все категории – даже те, в которых нет пакетов.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости