Credo che il problema sia la posizione di quel join.

La sintassi corretta dovrebbe essere:
codice:
SELECT campo1, campo2, SUM(campo5) AS totale
FROM tabella1, tabella2
JOIN tabella3
WHERE tabella1.campo2 = tabella2.campo1
GROUP BY campo1
HAVING campo2 > 0
ORDER BY campo1, campo2, totale
LIMIT 10
tu invece hai messo il JOIN dopo la clausola WHERE..ora..non ne sono sicuro al 100% ma credo che il problema sia quello...