SQL - inner join

 
Vista:

inner join

Publicado por victor Manuel (5 intervenciones) el 27/04/2013 17:03:50
Hola a Todos!

Tengo una consulta pues recien estoy iniciandome en el mundod e las base de daros en Sql.

tengo 3 tablas las q consisten en:

tabla: Empleados : Id_Empleado, Cod_Empleado, Nom_Empleado, Ape_Empleado, Id_Puesto, Id_Turno

tabla: Puestos : Id_Puesto, Cod_Puesto, Puesto

tabla: Turnos : Id_Turno, Cod_Turno, Turno

la tabla empleados esta relacionada con los id : d_Puesto, Id_Turno con las tablas Puestos y Turnos

en una consulta sql preciso mostrar en un grid el Id_Empleado, Cod_Empleado, Nom_Empleado, Ape_Empleado, y en vez de mostrar los Id_Puesto, Id_Turno necesito mostrar el puesto y turno de la tabla relacionada.

creo que esto esto deberia solucionarlo con inner join, pero como no se usar bien esto quedo algo colgado, probando logre solo esto

SELECT Puesto FROM Puestos INNER JOIN Empleados ON Puestos.Id_Puesto = Empleados.Id_Puesto

esto me muestra los puestos de la Tabla Puestos
pero lograr realizar una consulta completa para lograr mis objetivos me es dificil.

Atte.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

inner join

Publicado por Ricardo Mancilla (1 intervención) el 27/04/2013 17:34:58
Bueno, lo que planteas es sencillo pero teniendo la logica correcta.

Te explico la solucion.

1. Ten muy en cuenta la informacion que deseas mostrar pues va a ser la parte SELECT de la consulta SQL.
2. Ten en cuenta los id con los cuales "conectas" la informacion de las tablas.
3. Como recomendacion, es muy util los "alias" de las tablas, ya veras como se usan en la consulta. Voy a utilizar los siguientes alias para las tablas: Empleados -> E, Puestos -> P, Turnos -> T.

Teniendo esto claro, iniciamos:

* SELECT E.Id_Empleado, E.Cod_Empleado, E.Nom_Empleado, E.Ape_Empleado, P.Puesto, T.Turno -> Esta es la informacion que deseas traer de la base de datos.

Ahora vamos con el from:

FROM Empleados 'E'
INNER JOIN Puestos 'P' ON E.Id_Puesto=P.Id_Puesto
INNER JOIN Turnos T ON E.Id_Turno=T.Id_Turno -> Enlazamos las tablas con los id correspondientes.

Luego de hacer esto, vienen las condiciones de consulta, es decir, el WHERE, para este caso veo que no lo necesitas, entonces la consulta quedaría asi:

SELECT E.Id_Empleado, E.Cod_Empleado, E.Nom_Empleado, E.Ape_Empleado, P.Puesto, T.Turno FROM Empleados 'E' INNER JOIN Puestos 'P' ON E.Id_Puesto=P.Id_Puesto INNER JOIN Turnos T ON E.Id_Turno=T.Id_Turno

Nos cuentas si te funciona. Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

inner join

Publicado por victor Manuel (5 intervenciones) el 27/04/2013 22:06:23
muy buena explicacion realmente no pense que respondieran tan rapido,

probe dicha solucion pero me marca el siguiente error
Sintaxis incorrecta cerca de 'E'.

trabajo con sql server 2008 esta consulta la quiero implementar en un procedimiento almacenado y llamarla desde c# con visual studio 2010

Atte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

inner join

Publicado por victor Manuel (5 intervenciones) el 27/04/2013 22:23:11
Tema Solucionado.

Pasa que solamente probaba este codigo como sonsulta desde c# a sql por medio de una conexion declarada en C#.

al probarla en sql server solo les quite las ' ' y funciono correctamente.

Esta de mas decir que pasare por aca muy seguido pues me han sido de ayuda y la rapidez para comentar los post me alegran al igual que la calidad de la respuesta.
gracias Ricardo Mancilla

Atte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar