Podrías hacerlo con programación. Pero si quieres hacerlo desde la base de datos, podrías hacer algo parecido a esto. No sé cómo tienes metido el mes, si como varchar o cómo (he pensado que tienes metido enero, febrero, marzo, etc.), pero esta consulta podría hacer lo que quieres.
Código sql:
Ver originalSELECT a.nombre,
IF( SUM( IF( m.meses = 'enero', 1, 0 ) ) >0, 'X', '' ) AS enero,
IF( SUM( IF( m.meses = 'febrero', 1, 0 ) ) >0, 'X', '' ) AS febrero,
IF( SUM( IF( m.meses = 'marzo', 1, 0 ) ) >0, 'X', '' ) AS marzo,
IF( SUM( IF( m.meses = 'abril', 1, 0 ) ) >0, 'X', '' ) AS abril,
IF( SUM( IF( m.meses = 'mayo', 1, 0 ) ) >0, 'X', '' ) AS mayo,
IF( SUM( IF( m.meses = 'junio', 1, 0 ) ) >0, 'X', '' ) AS junio,
IF( SUM( IF( m.meses = 'julio', 1, 0 ) ) >0, 'X', '' ) AS julio,
IF( SUM( IF( m.meses = 'agosto', 1, 0 ) ) >0, 'X', '' ) AS agosto,
IF( SUM( IF( m.meses = 'septiembre', 1, 0 ) ) >0, 'X', '' ) AS septiembre,
IF( SUM( IF( m.meses = 'octubre', 1, 0 ) ) >0, 'X', '' ) AS octubre,
IF( SUM( IF( m.meses = 'noviembre', 1, 0 ) ) >0, 'X', '' ) AS noviembre,
IF( SUM( IF( m.meses = 'diciembre', 1, 0 ) ) >0, 'X', '' ) AS diciembre
FROM `alumno` a
INNER JOIN meses m ON a.id = m.idalumno
GROUP BY a.id
Agrupo por nombre y luego hago suma por meses, el primer if de cada mes convierte cualquier número que no sea cero en una X.