Cita: Tendrías, que cruzar con una tabla, que tenga valores del 1 al 12 haciendo un outer join.
La idea es esa, pero la cláusula en MySQL es LEft JOIN, no OUTER JOIN. OUTER es de SQL Server, y si bien MySQL puede reconocerla es mejor no generar confusiones.
Además la parsea como LEFT JOIN.... ¿Para qué escribirla de otro modo?