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