Citando al manual de referencia:
Cita: El NATURAL [LEFT] JOIN de dos tablas se define semánticamente equivalente a un INNER JOIN o LEFT JOIN con una cláusula USING que nombra todas las columnas que existen en ambas tablas.
Esto significa que en realidad NATURAL LEFT JOIN existe por compatibilidad. Lo realmente funcional es INNER JOIN o LEFT JOIN.
En cualquiera de los dos casos se puede usar ON o USING para establecer los campos de enlace, pero con esta salvedad: USING requiere que los campos tengan el mismo nombre en ambas tablas, mientras que ON se puede usar en ese caso, o en el caso que los campos implicados tengan diferente nombre.
LEFT JOIN (y su contraparte RIGHT JOIN) opera con los campos devueltos de la primera tabla (a la
izquierda de la sentencia), pero tanto uno como otro pueden devolver valoes en NULL, con lo que se debe considerar el problema. De allí lo de NOT NULL. El detalle es que la sintaxis sería en todo caso
Puesto que no existe una función NULL como para escribir:
Not Null(el_campo_que_te_sale_vacio_o_nulo).
LEF JOIN es la más funcional si lo que quieres es que coincidan las cosas con la primera tabla, o bien, si en este JOIN pueden necesitarse recuperar valores de la primera tabla aunque no haya correspondencias con la segunda. En ese caso, en esos campos se usa IFNULL(,) para evitar que en el campo aparezca en NULL.