Hola. Si, estoy utilizando php + Mysql.
Yo logro realizar las consultas deseadas, pero haciendo 3 consultas por separado:
Legajo: quiero que aparezcan todos los legajos de los alumnos que dieron los mismos examenes que $usu_logueado:
Código PHP:
SELECT legajo
FROM notas
WHERE legajo<>'$usu_logueado'
AND examen IN
(SELECT examen FROM notas WHERE legajo='$usu_logueado');
Esta consulta me arroja este resultado:
Legajo
200
300
Afinidad:
(cantidad de examenes en comun con $usu_logueado y con diferencia de nota < 2):
Código PHP:
SELECT examen,legajo,nota,usu.nota nota_logueado,count(legajo) as cant
FROM notas
LEFT JOIN
(SELECT legajo,examen,nota
FROM notas
WHERE legajo='$usu_logueado') usu
ON notas.examen=usu.examen
WHERE notas.legajo <> '$usu_logueado'
AND ABS(notas.nota - usu.nota) <'2'
AND notas.examen IN
(SELECT examen FROM notas WHERE legajo = '$usu_logueado')
GROUP BY legajo ORDER BY cant DESC,legajo;
Esta consulta me arroja este resultado:
Afinidad1
1
2
(cantidad de examenes en comun con $usu_logueado):
Código PHP:
SELECT examen,legajo,nota,usu.nota nota_logueado,count(notas.legajo) as cant
FROM notas
LEFT JOIN
(SELECT legajo,examen,nota
FROM notas
WHERE legajo='$usu_logueado') usu
ON notas.examen=usu.examen
WHERE notas.legajo <> '$usu_logueado'
AND examen IN
(SELECT examen FROM notas WHERE legajo = '$usu_logueado')
GROUP BY legajo ORDER BY cant DESC,legajo;
Esta consulta me arroja este resultado:
Afinidad2
2
3
Yo quisiera obtener esta informacion en 1 sola consulta, asi:
Legajo--------Afinidad1----------------Afinidad2
200____________1___________________________2
300____________2___________________________3
Gracias!