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

Relacionar 3 tablas

Estas en el tema de Relacionar 3 tablas en el foro de Mysql en Foros del Web. Hola, soy nuevo en el foro, les comento: Tengo 3 tablas estudiante ->idestudiante cursos ->idcursos estudiante_cursos ->idestudiante ->idcursos Quisiera relacionar las tablas para poder mostrar ...
  #1 (permalink)  
Antiguo 27/01/2016, 16:13
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Relacionar 3 tablas

Hola, soy nuevo en el foro, les comento:

Tengo 3 tablas

estudiante
->idestudiante



cursos
->idcursos


estudiante_cursos

->idestudiante
->idcursos

Quisiera relacionar las tablas para poder mostrar
la cantidad de cursos que hace un estudiante, pero no se como
hacerlo soy nuevo en mysql, si alguien me hecha un cable genial
o algun texto donde encontrar la solucion
  #2 (permalink)  
Antiguo 27/01/2016, 16:49
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, 4 meses
Puntos: 2658
Respuesta: Relacionar 3 tablas

Comienza por postear tu mejor intento. Si no lo has hecho, empieza a hacerlo. Y si no sabes cómo, revisa el manual basico.
La idea de FDW es ayudarte a solucionar problemas que se presentan MIENTRAS DESARROLLAS, no a enseñar lo elemental.
__________________
¿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 27/01/2016, 16:58
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Relacionar 3 tablas

Eh intentado hacer un inner join pero no sale, como dije, soy noob
Código MySQL:
Ver original
  1. SELECT i.idestudiante estudiante,
  2.     b.idestudiante estudiante_cursos
  3. FROM cursos b
  4. INNER JOIN estudiante i ON ib.idestudiante = i.idestudiante
  5. INNER JOIN estudiante cursos b ON ib.idestudiante = b.idestudiante
[/QUOTE]

Última edición por gnzsoloyo; 27/01/2016 a las 17:14
  #4 (permalink)  
Antiguo 27/01/2016, 17:21
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, 4 meses
Puntos: 2658
Respuesta: Relacionar 3 tablas

Bueno, por supuesto que no te va a salir... No estás relacionando la tabla CURSOS con ninguna otra. Y tampoco estás devolviendo ningún dato de los cursos.
Además, estás invocando un alias "ib" que no existe en ninguna parte.

Código MySQL:
Ver original
  1. SELECT i.idestudiante estudiante, c.curso
  2. FROM estudiante e
  3.     INNER JOIN estudiante_cursos ec ON e.idestudiante = ec.idestudiante
  4.     INNER JOIN cursos c ON c.idcurso =ec.idcurso
Cuidado: Estoy haciendo la suposición de que tienes un campo "curso" en la tabla "cursos" con el nombre del curso donde está registrado el alumno... Pero no sé si existe.

Creo que tienes que volver a revisar los apuntes, y por sobre todas las cosas presta atención a los mensajes de error de MySQL. Es obvio que esa query debe haberte devuelto mensajes de error y ni siquiera te has molestado en compartirlos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/01/2016, 19:09
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Relacionar 3 tablas

gnzsoloyo, una ultima consulta, si quisiera poner en la tabla estudiante_cursos
como el idestudiante apunta a la tabla estudiante.-> idestudiante.
y idcursos de cursos a estudiante_cursos idcursos...
como puedo hacer para que en la tabla cursos_estudiante
->idestudiante que es primaria, aparezca mas de 1 vez ya que puede
que ese estudiante este en otro idcurso ?
  #6 (permalink)  
Antiguo 27/01/2016, 19:19
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, 4 meses
Puntos: 2658
Respuesta: Relacionar 3 tablas

SI la tabla "cursos_estudiante" tiene como PK el campo "id_estudiante" exclusivamente, entonces está MAL definida.
Una tabla relacional como lo es CURSOS_ESTUDIANTE, que representa la relación N:M entre CURSOS y ESTUDIANTES, debería tener una PK compuesta por las dos FK, y no sólo por una de ellas.
__________________
¿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: relacionar, sql, tabla, tablas
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 12:40.