Saltar al contenido

¿Quién me presta los apuntes?

Enunciado

Antes de los exámenes conviene estudiar con alguien que lleve todo lo que llevas tú: sus apuntes te sirven para todos tus cursos. Si además lleva otros, no estorba.

Por cada estudiante, muestra su nombre y el de cada compañero cuyos apuntes le sirven para todo, en ese orden. Hugo lleva los dos cursos de Lucas y uno más: a Lucas le sirven los de Hugo, y a Hugo no le alcanzan los de Lucas.

Llevar un curso es estar inscrito, con nota o sin ella. Nadie se presta apuntes a sí mismo, y quien no lleva ningún curso no necesita los de nadie. Ordena por el primer nombre y, dentro de cada uno, por el segundo.

Lo que tiene que devolver

Estas filas, en este orden

estudianteapuntes_de
EmmaJulia
EmmaLeo
JuliaEmma
JuliaLeo
LeoEmma
LeoJulia
LucasHugo

Es lo que sale con los datos de la base de práctica del reto. Los nombres de las columnas no cuentan, las tuyas pueden llamarse como quieras: cuenta cuántas son y en qué orden van. Además de esta, el reto tiene pruebas ocultas con otros datos, que se revelan al enviar tu solución.

Empiezas con esto

SQL

SELECT a.estudiante_id AS quien,
  b.estudiante_id AS otro
FROM notas a
JOIN notas b
  ON a.curso_id = b.curso_id
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(2ⁿ)

Ver todos los retos →