Autor Zpráva
Toník
Profil *
Zdravím,

chtěl bych se poradit. Mám SQL příkaz, který vypisuje produkty z dané kategorie nebo počet produktů z dané kategorie, potřebuji ale do něj doplnit, aby zobrazil pouze dostupné produkty.

SQL vypadá třeba takto pro získání počtu produktů:

SELECT COUNT(*) FROM ( 
SELECT pr.id, (
SELECT SUM(prstock.amount) FROM shop_products_stock prstock 
LEFT JOIN shop_products npr ON prstock.product_id=npr.id 
WHERE npr.active=1 AND (prstock.product_id=pr.id OR prstock.product_parent_id=pr.id) 
) as total_stock 
FROM shop_products pr 
LEFT JOIN shop_products_category cat ON pr.id = cat.product_id
WHERE pr.active=1 AND total_stock>0 
GROUP BY pr.id 
) 
d1

Ale vrátí mi to:

Unknown column 'total_stock' in 'where clause'

nevím, jak to mám přidat jako "filtr" do where.

Díky za rady.
Kajman
Profil
Zkuste
WHERE pr.active=1 
GROUP BY pr.id 
HAVING total_stock>0 

Kdyby to nešlo, tak podmínku na total_stock dejte o závorku výše...

WHERE pr.active=1
GROUP BY pr.id 
) 
d1
WHERE d1.total_stock>0 
Toník
Profil *
Moc díky, having pomohlo :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0