¿Quién me presta los apuntes?
- O(2ⁿ) · Legendaria
- Plan completo
- SQL
- subconsultas
- uniones
- agrupar
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
| estudiante | apuntes_de |
|---|---|
| Emma | Julia |
| Emma | Leo |
| Julia | Emma |
| Julia | Leo |
| Leo | Emma |
| Leo | Julia |
| Lucas | Hugo |
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_idSe 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.