Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Aeros en 14 Julio 2010, 13:07 pm



Título: Consulta en mysql (join)
Publicado por: Aeros en 14 Julio 2010, 13:07 pm
Hola buenos dias:

primero gracias al moderador por explicarme bien las foraneas que ya las hice en sql y bien :D

tengo la siguiente base de datos con sus respectivos campos:

(http://s2.subirimagenes.com/otros/previo/thump_4796463hacker.jpg) (http://www.subirimagenes.com/otros-hacker-4796463.html)

Primero se me ocurrio hacer un join entre profesores y cursos para listar los profesores y los cursos que dicta (select * from curso, profesor where curso.id_Profesor = profesor.id_Profesor) pero digo como hacer un join para el mismo caso pero de alumnos teniendo una tabla entre medio que seria de inscripcion??


Título: Re: Consulta en mysql (join)
Publicado por: Novlucker en 14 Julio 2010, 13:30 pm
Buenas

Primero, te sugiero utilizar inner join en lugar del where a secas
Código
  1. SELECT * FROM curso INNER JOIN profesor ON curso.id_Profesor = profesor.id_Profesor

Para lo otro, sigues con lo mismo pero saltas en la "nueva tabla" ...

Código
  1. SELECT * FROM alumno INNER JOIN inscripcion
  2. ON alumno.id_alumno = inscripcion.id_alumno
  3. INNER JOIN cursos
  4. ON inscripcion.id_curso = curso.id_curso

Utilizar inner join es lo más optimo, pero no se si ya lo conoces o debes de hacerlo a base de where :P

Saludos




Título: Re: Consulta en mysql (join)
Publicado por: Aeros en 14 Julio 2010, 14:20 pm
lo probe en el query  y funciono perfectamente!

una pregunta se puede usar un insert con un inner join? por ejemplo si quiero agregar un alumno a un curso y quiero saber si el campo vacantes es > 0 y si lo hay ingresarlo  e ir restando, porque vi en un foro que decia la setencia insert no permite la union!


Título: Re: Consulta en mysql (join)
Publicado por: Novlucker en 14 Julio 2010, 14:27 pm
Procedimientos almacenados? (http://www.fpress.com/revista/num1205/art.htm) Ahí puedes meter cuanta consulta y comprobación quieras

Saludos