Te conviene ponerte a estudiar urgente los principios del uso de JOIN en sus tres formas: INNER, LEFT y RIGHT, ya que el problema es de manual básico. Disculpa que te lo diga así, pero es un tema que se ha tratado infinidad de veces en los foros de bases de datos.
Este tipo de consultas es es extremadamente simple, y las verás en todos los tutoriales más comunes que puedas buscar:
En un LEFT JOIN, la consulta devuelve todo lo que contiene la primera tabla (izquierda, o LEFT), tenga o no coincidencias con la segunda (de la derecha), poniendo NULLL en todas las columnas de la segunda tabla que se indiquen en el SELECT. Como NULL no es muy manejable por programacion, es mejor aplicar IFNULL() , para reemplazar esos NULL por otra cosa, en este caso un caracter vacío.
Si: Un caracter vacío
no es NULL. Es otra cosa. Tampoco es NULL un espacio vacío.