@Monxu: Tal parece que estás haciendo sólo Copy+Paste, y esperando haber recibido de regalo el código completo, funcional y sin errores. Creo que deberías al menos hacer un esfuerzo por buscar tu mismo el error, de ese modo se logra dominar las cosas.
Por lo pronto, te sugiero que descargues e instales el MySQL Workbench, que es gratuito, y el cual tiene un corrector sintáctico que te permitirá encontrar ese tipo de defectos sin problemas. Al menos eso es lo que solemos hacer nosotros.
Te dejo el link:
http://dev.mysql.com/downloads/tools/
Hay un error, pero es tan nimio que con sólo revisar el código lo hubieras encontrado, porque no está en las clausulas, ni las tablas, ni las columnas. Está en los paréntesis y el orden.
Código MySQL:
Ver original c.active,
cl.name,
c.id_parent idpadre,
clp.name padre,
c.description,
c.link_rewrite
LEFT JOIN ps_category_lang cl
ON c.id_category
= cl.id_category
LEFT JOIN ps_category cp
ON c.id_parent
=cp.id_category
LEFT JOIN ps_category_lang clp
ON cp.id_category
= clp.id_category
WHERE c.id_category
> 2 AND cl.id_lang
= 4
Personalmente, me parece que eso te puede generar un producto cartesiano, pero eso lo verás eventualmente.
Por cierto, te aconsejo dos cosas:
1) No abuses de los paréntesis, y no los pongas donde no se necesitan. Alteran la lógica de la consulta y pueden causar bajas de performance.
2) No uses palabras reservadas como "name", o cosas así en los nombres de las columnas o de las tablas. Pueden provocar errores sintácticos indetectables.