Все получилось супер...
Но возникла еще 1 проблема(((
Вот как выглядит мой запрос
-- Основная категория:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog = $category AND visible='1')
UNION
-- Подкатегория:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog IN
(
SELECT catalog_id FROM catalog WHERE parent_id = $category
) AND visible='1')
UNION
-- Основная категория1:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog1 = $category AND visible='1')
UNION
-- Подкатегория1:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog1 IN
(
SELECT catalog_id FROM catalog WHERE parent_id = $category
) AND visible='1')
Как вы уже наверное поняли он работал неправильно, мне нужно чтобы Основная категория суммировалась с Основной категорией1 и Подкатегория с Подкатегория1
Вот что выходило если выбрать допусти Основную категорию (Подставил вместо $category=405(ID Основной категории))
-- Основная категория:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog = 405 AND visible='1')
UNION
-- Подкатегория:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog IN
(
SELECT catalog_id FROM catalog WHERE parent_id = 405
) AND visible='1')
UNION
-- Основная категория1:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog1 = 405 AND visible='1')
UNION
-- Подкатегория1:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog1 IN
(
SELECT catalog_id FROM catalog WHERE parent_id = 405
) AND visible='1')
Вот что получилось
Теперь Подкатегория (Подставил вместо $category=404(Подкатегория))
-- Основная категория:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog = 404 AND visible='1')
UNION
-- Подкатегория:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog IN
(
SELECT catalog_id FROM catalog WHERE parent_id = 404
) AND visible='1')
UNION
-- Основная категория1:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog1 = 404 AND visible='1')
UNION
-- Подкатегория1:
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE goods_catalog1 IN
(
SELECT catalog_id FROM catalog WHERE parent_id = 404
) AND visible='1')
И тут получилось
И мне подсказали как решить часть проблемы (Суммировать Основные категории и положить в одну ячейку)
Вот функция
SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE (goods_catalog = 405 OR goods_catalog1 = 405) AND visible='1'
Вот результат:
И я попытался провернуть такое же с Подкатегорией но ка вы видели все безуспешно
Нужно чтобы когда в запросе спрашивают "Основную категорию", она выдавало Сумму (Основной категории и Основной категории1)
А когда в запросе спрашивают "Подкатегорию" , она выдавало Сумму (Подкатегории и Подкатегории1)
Вот попытался соединить запросы подставив для начала вместо $category=405(ID Основной категории)
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE (goods_catalog = 405 OR goods_catalog1 = 405) AND visible='1')
UNION
(SELECT COUNT(goods_id) AS count_rows
FROM goods
WHERE goods_catalog + goods_catalog1 IN
(
SELECT catalog_id FROM catalog WHERE parent_id = 405
) AND visible='1')
Основная категория работает Отлично
А теперь тот же запрос только уже подкатегория, вместо $category=404(ID Подкатегории)
(SELECT COUNT(goods_id) as count_rows
FROM goods
WHERE (goods_catalog = 404 OR goods_catalog1 = 404) AND visible='1')
UNION
(SELECT COUNT(goods_id) AS count_rows
FROM goods
WHERE goods_catalog + goods_catalog1 IN
(
SELECT catalog_id FROM catalog WHERE parent_id = 404
) AND visible='1')
Только происходит разница подкатегорий
Как решить эту проблему?
Пожалуйста помогите разобраться неопытному
Прикладываю Базу данных
Прикрепленные файлы:
vopros.sql, Размер: 256,840 байт, Скачано: 1,011