Você tem um
unexpected identifier
em seu SQL
declaração ... Isso ocorre porque você está usando o alias
zcp desnecessariamente. Com o SQL
que você tem, não há necessidade de alias
a table
no 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));
OBSERVAÇÃO Se você usasse uma ferramenta como MySQL Workbench -- Ela identificaria o problema para você ... Permitindo que você solucione problemas com mais facilidade.