Witam
Próbuję wyświetlić tylko te kategorie produktów, które zawierają jakieś towary.
Mam takie zapytanie:
SELECT c.categories_id, cd.categories_name, c.parent_id
FROM categories c, categories_description cd
WHERE c.parent_id = '0' AND c.categories_id = cd.categories_id AND cd.language_id='1' AND
(SELECT count(p.products_id) AS total
FROM products_description pd, products p
LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id
LEFT JOIN specials s ON p.products_id = s.products_id, products_to_categories p2c WHERE p.products_status = '1' AND p.products_id = p2c.products_id AND pd.products_id = p2c.products_id AND pd.language_id = '1' AND (p2c.categories_id IN (SELECT categories_id
FROM `categories` cc WHERE c.parent_id = c.categories_id) OR p2c.categories_id = c.categories_id) AND p.products_quantity >= '0') >0
ORDER BY cd.categories_name
Zwraca mi listę z pominięciem dwóch kategorii, ale jak dam
[...]OR p2c.categories_id = c.categories_id) AND p.products_quantity >= '0') > -1
ORDER BY cd.categories_name
To mi wyświetla wszystkie kategorie.
Co tu jest nie tak??
A znowu to zapytanie działa:
SELECT c.categories_id, cd.categories_name, c.parent_id ,
(SELECT count(cc.categories_id)
FROM categories cc, categories_description ccd WHERE cc.parent_id = c.categories_id AND cc.categories_id = ccd.categories_id AND ccd.language_id='1'
)AS total
FROM categories c, categories_description cd
WHERE c.parent_id = '0' AND c.categories_id = cd.categories_id AND cd.language_id='1' AND
(SELECT count(cc.categories_id)
FROM categories cc, categories_description ccd WHERE cc.parent_id = c.categories_id AND cc.categories_id = ccd.categories_id AND ccd.language_id='1'
)>0
ORDER BY cd.categories_name
Czyżby tamto je za długie...:/
Z góry dzięki za pomoc.
Pozdrawiam
Ten post edytował raczkowski1 15.06.2011, 14:29:30