- Estás pidiendo sólo los de la primera tabla que tengan coincidencia en la segunda. Para ello LEFT JOIN no es la cláusula adecuada. Es más simple con INNER JOIN.
- USING es más eficiente, y como sólo se peude usar si los campos llevan el mismo nombre, en este caso es el mejor modo.
- Si la primera tabla no puede tener un ID en cero, descartar los ceros es irrelevante cuando usas INNER JOIN.
- DISTINCT es más eficiente que otras funciones, es funcional en este caso porque quieres todos los registros distintos según los campos del SELECT.