Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: orion180 en 10 Septiembre 2004, 13:20 pm



Título: Cómo hacer esta consulta en MySql: Select distinct...
Publicado por: orion180 en 10 Septiembre 2004, 13:20 pm
Nada, que no me sale, a ver si alguien me echa una mano, porfa:
 
Tabla profesores: idCurso, DNI, +campos....
 
idCurso      DNI          otroscampos
======    ======     ========
18            11111111    .....
18            22222222    ....
31            11111111    .....
76            11111111    ....
99            22222222    ....
99            33333333    ....
 
Esta tabla asocia el dni de cada profesor con el idCurso que está impartiendo, p. ej. el profesor 222222 da dos cursos, el 18 y el 99.
(idCurso, DNI) forman la clave primaria.
 
Quiero encontrar la sentencia que, dado un curso, me de los dni's de los demás profesores que no imparten ese curso.
 
Para la tabla de arriba, me debe devolver:
    para el idCurso 18: 33333333
    para el idCurso 31: 22222222 y 33333333
    para el idCurso 76: 22222222 y 33333333
    para el IdCurso 99: 11111111
 
 
No me vale    SELECT distinct dni FROM profesores WHERE dni NOT IN (SELECT dni FROM profesores WHERE idCurso="idCurso_que_quiera")
 
no me sirve porque MySql no permite las consultas anidadas de esa forma.
 
Gracias.


Título: Re: Cómo hacer esta consulta en MySql: Select distinct...
Publicado por: orion180 en 10 Septiembre 2004, 13:28 pm
Este es el asunto entero del post, que se me ha cortado:

Cómo hacer esta consulta en MySql:

SELECT distinct dni FROM profesores WHERE dni NOT IN (SELECT dni FROM profesores WHERE idCurso="idCurso_que_quiera"


Título: Re: Cómo hacer esta consulta en MySql: Select distinct...
Publicado por: fran800m en 21 Septiembre 2011, 20:10 pm
SELECT distinct p1.dni
FROM profesores p1, profesores p2
WHERE p1.dni = p2.dni and p2.idCurso <> "idCurso_que_quiera"