Cómo hacer esta consulta en MySql: Select distinct...

Iniciado por orion180, 10 Septiembre 2004, 13:20 PM

0 Miembros y 1 Visitante están viendo este tema.

orion180

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.

orion180

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"

fran800m

SELECT distinct p1.dni
FROM profesores p1, profesores p2
WHERE p1.dni = p2.dni and p2.idCurso <> "idCurso_que_quiera"