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

[Ayuda]Inner Join y conceptos

Estas en el tema de [Ayuda]Inner Join y conceptos en el foro de Mysql en Foros del Web. Hola chicos el problema mio surge,con lo siguiente Alumno dni (pk) nombre (varchar) apellido(varchar) se_inscriben dni(pk) id_comision(pk) fk(dni,id_comision) comision id_comision pk nombre_comision (varchar) Mi duda ...
  #1 (permalink)  
Antiguo 26/11/2014, 19:56
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 9 años, 5 meses
Puntos: 0
[Ayuda]Inner Join y conceptos

Hola chicos el problema mio surge,con lo siguiente

Alumno
dni (pk)
nombre (varchar)
apellido(varchar)

se_inscriben
dni(pk)
id_comision(pk)
fk(dni,id_comision)

comision
id_comision pk
nombre_comision (varchar)




Mi duda es la siguiente,me dijieron que no puedo insertar los datos de alumno en comision porque seria rebundancia de datos,entonces como hago para saber que alumno esta inscripto en tal comision?
mi profesor hacia algo asi
Código MySQL:
Ver original
  1. select * from alumno inner join comision on (alumno.dni = comision.id_comision)
pero en el codigo anterior no esta comparando si el dni es igual a la comision?
eso no esta mal?
ayuda por favor tengo un lio con los conceptos
  #2 (permalink)  
Antiguo 27/11/2014, 02:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: [Ayuda]Inner Join y conceptos

Código MySQL:
Ver original
  1. SELECT * FORM alumnos a INNER JOIN se_inscriben i ON a.dni=i.dni
  2.                                            INNER JOIN comision c ON c.id_comision=i.id_comision
  3. WHERE a.dni='00000000X';

Ahi tendrias las comisiones del alumno 0000000X.

Código MySQL:
Ver original
  1. SELECT * FORM alumnos a INNER JOIN se_inscriben i ON a.dni=i.dni
  2.                                            INNER JOIN comision c ON c.id_comision=i.id_comision
  3. WHERE c.id_comision=Y;

Y ahí los alumnos de la comisión Y

Yo lo expresaria así

se_inscriben
dni(fk)
id_comision(fk)
pk(dni,id_comision)

Puesto que són dos FK simples a dos tablas y una PK compuesta.


Código MySQL:
Ver original
  1. select * from alumno inner join comision on (alumno.dni = comision.id_comision)

No tiene sentido comparar el identificador de una comisión con el dni de un alumno.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 27/11/2014, 08:04
Avatar de solmedina87  
Fecha de Ingreso: noviembre-2014
Mensajes: 68
Antigüedad: 9 años, 5 meses
Puntos: 4
Respuesta: [Ayuda]Inner Join y conceptos

Como vos lo tenés creo que es bastante simple saber que alumno está en tal comisión:

Código SQL:
Ver original
  1. SELECT c.nombre_comision, si.dni, a.nombre, a.apellido
  2. FROM se_inscriben si
  3. INNER JOIN alumno a ON a.dni=si.dni
  4. INNER JOIN comision c ON c.id_comision=si.id_comision

Esto debería darte el listado de comisiones y los alumnos que la componen si no me equivoco.
  #4 (permalink)  
Antiguo 27/11/2014, 23:12
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: [Ayuda]Inner Join y conceptos

Muchas gracias,ahora si me quedo claro,le habia pifiado feo yo jaja.
Una pregunta cuando yo tengo que insertar un alumno en tal comision lo inserto en la tabla de FK o como seria la sintaxis en Mysql por favor.
  #5 (permalink)  
Antiguo 28/11/2014, 08:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: [Ayuda]Inner Join y conceptos

Código MySQL:
Ver original
  1. INSERT INTO se_inscriben (dni,id_comision) VALUES ('00000000X',Y);

Acabamos de inscribir el alumno con dni 00000000X en la comisión Y, obviamente tanto el uno como la otra deben existir previamente.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #6 (permalink)  
Antiguo 28/11/2014, 10:52
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: [Ayuda]Inner Join y conceptos

muchas gracias,osea inserto primero en las tablas
alumno
comision
Y luego los inserto en la relacion?
  #7 (permalink)  
Antiguo 28/11/2014, 11:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: [Ayuda]Inner Join y conceptos

Si si el alumno o la comisión no existen si solo la relación....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: join, select
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

SíEste tema le ha gustado a 1 personas




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