Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como hacer una consulta de diferencia, Mysql 5.5.8

Estas en el tema de Como hacer una consulta de diferencia, Mysql 5.5.8 en el foro de Mysql en Foros del Web. Hola a todos! necesito hacer una consulta para un proyecto que me tiene mal Se trata de buscar los id ( identificador unico entero) de ...
  #1 (permalink)  
Antiguo 24/07/2011, 14:16
Avatar de neglivv  
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 12 años, 9 meses
Puntos: 11
Exclamación Como hacer una consulta de diferencia, Mysql 5.5.8

Hola a todos! necesito hacer una consulta para un proyecto que me tiene mal
Se trata de buscar los id ( identificador unico entero) de las materias que NO cursa un estudiante en particular. Para esto cuento con 2 tablas:
1.- cursos_estudiantes: Contiene las materias cursadas por los estudiantes.
  • id_estudiante: identificador único entero de los estudiantes
  • id_materia: identificador único entero de la materia cursada por los estudiantes

2.- cursos: Contiene la información de las materias del sistema, (id, nombre, descripción...)

Sé que en esencia es: los id que están en cursos que no estén en cursos_estudiantes (representados por id_materia) de un estudiante "x". Pero como puedo hacer para realizar esta consulta con mysql 5.5.8??
Gracias de antemano!
  #2 (permalink)  
Antiguo 25/07/2011, 08:07
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Como hacer una consulta de diferencia, Mysql 5.5.8

Hola neglivv:

Me gustaría que nos dijeras qué es lo que haz intentado hacer, poniendo algo del código en el que haz trabajado.

La consulta creo yo que no es muy complicada, teniendo algunos conocimientos de SQL, de hecho tienes varias opciones para resolverlo (utilizar NOT IN, NOT EXISTS o LEFT JOIN para simular una operación EXCEPT o MINUS)

podrías investigar un poco acerca de estos temas y si continuas con problemas entonces postea algunos datos de ejemplo y la consulta en la que estés trabajando para ayudarte a afinarla.

Saludos
Leo.
  #3 (permalink)  
Antiguo 26/07/2011, 09:15
Avatar de neglivv  
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 12 años, 9 meses
Puntos: 11
Respuesta: Como hacer una consulta de diferencia, Mysql 5.5.8

Gracias! con lo que me dijiste de utilizar NOT IN, NOT EXISTS o LEFT JOIN investigue un poco mas. y encontré la solución:

SELECT courses.id, courses.nombre FROM courses WHERE id NOT IN (SELECT course_id FROM courses_users WHERE user_id ='id_estudiante')

La cuestión era encontrar las asignaturas que NO cursa un estudiante, para mostrarlas al estudiante y que el pudiera inscribirlas.
en este caso "courses" es la tabla donde esta la información de las asignaturas (nombre, id, descripción...) y courses_users es la tabla donde están las asignaturas inscritas por los estudiantes (id del estudiante, id de la asignatura que tiene inscrita el estudiante)


Última edición por neglivv; 26/07/2011 a las 09:17 Razón: faltaba informacion

Etiquetas: conjuntos, diferencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:03.