Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/02/2012, 08:37
pablokru
 
Fecha de Ingreso: octubre-2011
Ubicación: Buenos Aires
Mensajes: 84
Antigüedad: 13 años, 1 mes
Puntos: 2
Pregunta Respuesta: Relacionar los datos de una tabla de 3 campos

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!