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')

Вот что получилось
http://i051.radikal.ru/1408/76/ed779e4cbfdb.jpg

Теперь Подкатегория (Подставил вместо $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')

И тут получилось
http://s008.radikal.ru/i303/1408/7e/5bbd69c09790.jpg

И мне подсказали как решить часть проблемы (Суммировать Основные категории и положить в одну ячейку)
Вот функция

SELECT COUNT(goods_id) AS count_rows
FROM goods 
WHERE (goods_catalog = 405 OR goods_catalog1 = 405)  AND visible='1'

Вот результат:
http://s014.radikal.ru/i326/1408/0a/9eac483cb863.jpg

И я попытался провернуть такое же с Подкатегорией но ка вы видели все безуспешно
Нужно чтобы когда в запросе спрашивают "Основную категорию", она выдавало Сумму (Основной категории и Основной категории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')

Основная категория работает Отлично
http://s017.radikal.ru/i422/1408/82/05cc7cadc25d.jpg

А теперь тот же запрос только уже подкатегория, вместо $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')

Только происходит разница подкатегорий
http://s018.radikal.ru/i513/1408/89/a692beb2c9d3.jpg

Как решить эту проблему?
Пожалуйста помогите разобраться неопытному

2

Re: Как объединить запрос Новичок! Пожалуйста!

Неужели никто не поможет?

3

Re: Как объединить запрос Новичок! Пожалуйста!

Задачу понять не смог. Думаю Вам следует разделить запросы и не пытаться все сделать подзапросами сразу в MySQL.