Tienes un unexpected identifier
en tu SQL
declaración ... Esto se debe a que está utilizando el alias
zcp innecesariamente Con el SQL
que tiene, no hay necesidad de alias
la table
en el DELETE
cláusula.
DELETE FROM zc_products
WHERE products_id IN (SELECT DISTINCT p.products_id FROM zc_products p, zc_products_to_categories pc WHERE
p.products_id = pc.products_id AND
pc.categories_id IN (SELECT DISTINCT zcc.categories_id FROM zc_categories zcc WHERE zcc.categories_status = 0));
NOTA Si usó una herramienta como MySQL Workbench, identificaría el problema para usted... lo que le permite solucionar los problemas más fácilmente.