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

[SOLUCIONADO] Consultas con relacion N:M

Estas en el tema de Consultas con relacion N:M en el foro de Mysql en Foros del Web. Buenas buenas estoy haciendo una base de datos que almacena las materias que ve un estudiante, el mismo puede ver varias materias, para ello tengo ...
  #1 (permalink)  
Antiguo 31/05/2015, 16:39
Avatar de lisamolinad  
Fecha de Ingreso: mayo-2015
Mensajes: 13
Antigüedad: 8 años, 10 meses
Puntos: 0
Busqueda Consultas con relacion N:M

Buenas buenas estoy haciendo una base de datos que almacena las materias que ve un estudiante, el mismo puede ver varias materias, para ello tengo tres tablas: "estudiante", que tiene como llave principal "cedula_identidad"; la tabla "materia" que tiene como llave principal "codigo_materia", y finalmente la tabla, "estudiante_materia" que almacena ambos campos. Quiero realizar una consulta ingresando en el campo "cedula_identidad", ¿cómo hago para que por medio de la tabla de la relación "estudiante_materia", lea el "codigo_materia" guiandose por la cedula ingresada, me lleve a la tabla "materia" y me imprima todos los datos que esten en esa tabla, basandose en el "codigo_materia"?.

Saludos!

He intentado ya de varias maneras pero no me da, y tengo esa duda
  #2 (permalink)  
Antiguo 31/05/2015, 17:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultas con relacion N:M

Es un JOIN básico con tres tablas, no se ve dificultad en el tema.
Poste lo que has intentado para ver cual es el error que tienes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/05/2015, 17:46
Avatar de lisamolinad  
Fecha de Ingreso: mayo-2015
Mensajes: 13
Antigüedad: 8 años, 10 meses
Puntos: 0
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Código MySQL:
Ver original
  1. SELECT * FROM estudiante_materia WHERE cedula_identidad='$cedula_identidad'

Código MySQL:
Ver original
  1. SELECT * FROM materia INNER JOIN estudiante_materia ON materia.codigo_materia = estudiante_materia.codigo_materia

Soy nueva en esto de las Bases de Datos

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Código MySQL:
Ver original
  1. SELECT * FROM estudiante_materia WHERE cedula_identidad='$cedula_identidad'
Código MySQL:
Ver original
  1. SELECT * FROM materia m LEFT OUTER JOIN estudiante_materia e ON e.codigo_materia = m.codigo_materia

con este me imprime todas las meterias, pero no me toma en cuenta la cedula... ¿necesito un INNER JOIN compuesto? ¿cómo sería la estructura?

Última edición por gnzsoloyo; 31/05/2015 a las 19:58
  #4 (permalink)  
Antiguo 31/05/2015, 20:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consultas con relacion N:M

Mira, estás complicando las cosas demasiado. Cuando dije un JOIN multiple, me refiero a un esquema como este:
Código MySQL:
Ver original
  1. SELECT A.*, C.*
  2. FROM tablaA A
  3.     INNER JOIN tablaB B ON A.id_A = B.id_A
  4.     INNER JOIN tablaC C ON B.id_C = C.id_C
  5. WHERE A.id_A = XXXX

Si razonas este esquema, ubicando las tablas que describes tu mismo en tu ejercicio, en las posiciones adecuadas:
Cita:
tengo tres tablas: "estudiante", que tiene como llave principal "cedula_identidad"; la tabla "materia" que tiene como llave principal "codigo_materia", y finalmente la tabla, "estudiante_materia" que almacena ambos campos. Quiero realizar una consulta ingresando en el campo "cedula_identidad",
tendrás el problema resuelto.

Lee con cuidado el ejemplo, haz los reemplazos que quieras, y problema terminado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql+consulta
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 13:11.