Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (sql) [Seleccionar]
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 (sql) [Seleccionar]
select * from alumno inner join inscripcion
on alumno.id_alumno = inscripcion.id_alumno
inner join cursos
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