El tema de la redundancia solo se daria si no creas la tabla que te comente que te evitará guardar el nombre de los idiomas n veces.
No se da con los datos del usuario puesto que solo los tendrias una vez junto con sus seis idiomas relacionados...
Ahora que me lo miro la consulta que te pase con subconsultas puede ser un poco mas simple...
Código:
Select tabla_usuarios.nombre,
tabla_aprende.idioma_aprende
from tabla_usuarios inner join tabla_aprende
on tabla_usuarios.ID_usuario= tabla_aprende.ID_usuario
where tabla_usuarios.ID_usuario
in (Select tabla_aprende.ID_usuario
from tabla_aprende
where idioma_aprende="Español");
Dicho esto, lee con atención a
jurema e intenta formular las sentencias para las preguntas que te ha planteado en los dos modelos.
Piensa que el tiempo que pierdas pensando una sentencia complicada solo se pierde una vez y al contrario el tiempo de cpu que se pierda por un mal modelo se perderá tantas veces como se ejecute la sentencia, si haces la suma de tiempos ya me dirás que es mejor...
Ademas cada vez que piensas una sentencia aprendes un poco mas con lo que la siguiente te saldrá más facil, encambio la cpu siempre ejecuta las cosas al mismo ritmo... ufff alta filosofia
.
Quim