Principales respuestas
Por favor con Inner Join multiple...

Pregunta
-
Hola como estan… Llevo como 7 meses programando con SQL Server pero hasta ahora no habia usado de una manera avanzada si se puede decir Inner Joint, entonces estoy empezando a usarlos… Sera que me ayudan a convertir esta consulta que hice con multiples Where a usarla con Inner Join…
TABLA CUADERNOS = Cu
TABLA Status = St
TABLA Caracteristicas = Ft
TABLA Personas = Pe
TABLA Personas_Cuadernos = PyC
SELECT Cu.Cuadernos, St.Descripcion, Ft.Caracteristicas FROM Cuadernos AS Cu, Status AS St, Caracteristicas AS Ft, Personas AS Pe, Personas_Cuadernos AS PyC
WHERE Pe.ID_Per = PyC.ID_Per AND
PyC.ID_Cua = Cu.ID_Cua AND
Cu.Id_Status = St.ID_Sta AND
Pe.ID_Per = Ft.ID_Per AND
Pe.Per_ID = '@valor'
He estado intentando pero aun no me sale…
SELECT Cu.Cuadernos, St.Descripcion, Ft.Caracteristicas FROM
Cuadernos INNER JOIN Personas_Cuadernos ON Cuadernos.ID_Cua = Personas_Cuadernos.ID_Cua,
Status INNER JOIN Cuadernos AS Cu ON Status.ID_Sta = Cu.Id_Status,
Personas INNER JOIN Caracteristicas ON Personas.ID_Per = Caracteristicas.ID_Per,
Personas AS Pe INNER JOIN Personas_Cuadernos AS PyC ON Per.ID_Per = PyC.ID_Per
WHERE Pe.Per_ID = '@valor'
Esta es la relacion de la tabla “por sia caso” aunque creo que no se entiene muy bien…
Relaciones:
Personas: 1 a varios Personas_Cuadernos “Pueden haber varios registros de una misma persona en Personas_Cuadernos”
Personas: 1 a varios Caracteristicas “Pueden haber varios registros de una misma persona en Caracteristicas”
Cuadernos: 1 a varios Personas_Cuadernos “Pueden haber varios registros de cuadernos en la tabla Personas_Cuadernos las cuales obviamente le pertenecen a una persona en particular”
Status: 1 a 1 Cuadernos “Un Cuaderno solo puede tener un status”
De antemano le agradezco a todos por su gran ayuda…
- Editado AdyIr lunes, 12 de abril de 2010 22:44
Respuestas
-
Si nos pones los scrips es mas fácil :) pero eso para otra.
haces un where con clientes.. que no está ene l from igual por ahí viene tu problema, en cualquier caso para no liarnos he escrito la creación de tablas y un join que espero que te sirva de ayuda.
create table [Status] (id_status int primary key, descrip varchar(10)) go create table Caracteristicas(id_caracteristica int primary key,otro varchar(10)) go create table cuadernos (id_cua int primary key,id_status int, otro varchar(10), constraint fk_cua_status foreign key (id_status) references [status]) go create table personas (id_per int primary key, id_caracteristica int, otro varchar(10), constraint fk_pers_carac foreign key (id_caracteristica) references caracteristicas) go create table personas_cuadernos (id_per int, id_cua int, otro varchar(10), constraint fk_per_cua_per foreign key (id_per) references personas, constraint fk_per_cua_cua foreign key (id_cua) references Cuadernos, constraint pk_per_cua primary key (id_per,id_cua)) go select * from cuadernos cu inner join [Status] st on cu.id_status=st.id_status inner join personas_cuadernos pyc inner join personas pe inner join Caracteristicas ft on ft.id_caracteristica=pe.id_caracteristica on pe.id_per=pyc.id_per on cu.id_cua=pyc.id_cua
Espero que te sirva
Comparte lo que sepas, aprende lo que no sepas (FGG)- Propuesto como respuesta Miguel Egea GómezMVP, Moderator lunes, 12 de abril de 2010 22:27
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator martes, 13 de abril de 2010 7:57
Todas las respuestas
-
Si nos pones los scrips es mas fácil :) pero eso para otra.
haces un where con clientes.. que no está ene l from igual por ahí viene tu problema, en cualquier caso para no liarnos he escrito la creación de tablas y un join que espero que te sirva de ayuda.
create table [Status] (id_status int primary key, descrip varchar(10)) go create table Caracteristicas(id_caracteristica int primary key,otro varchar(10)) go create table cuadernos (id_cua int primary key,id_status int, otro varchar(10), constraint fk_cua_status foreign key (id_status) references [status]) go create table personas (id_per int primary key, id_caracteristica int, otro varchar(10), constraint fk_pers_carac foreign key (id_caracteristica) references caracteristicas) go create table personas_cuadernos (id_per int, id_cua int, otro varchar(10), constraint fk_per_cua_per foreign key (id_per) references personas, constraint fk_per_cua_cua foreign key (id_cua) references Cuadernos, constraint pk_per_cua primary key (id_per,id_cua)) go select * from cuadernos cu inner join [Status] st on cu.id_status=st.id_status inner join personas_cuadernos pyc inner join personas pe inner join Caracteristicas ft on ft.id_caracteristica=pe.id_caracteristica on pe.id_per=pyc.id_per on cu.id_cua=pyc.id_cua
Espero que te sirva
Comparte lo que sepas, aprende lo que no sepas (FGG)- Propuesto como respuesta Miguel Egea GómezMVP, Moderator lunes, 12 de abril de 2010 22:27
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator martes, 13 de abril de 2010 7:57
-
Si nos pones los scrips es mas fácil :) pero eso para otra.
haces un where con clientes.. que no está ene l from igual por ahí viene tu problema, en cualquier caso para no liarnos he escrito la creación de tablas y un join que espero que te sirva de ayuda.
create table [Status] (id_status int primary key, descrip varchar(10)) go create table Caracteristicas(id_caracteristica int primary key,otro varchar(10)) go create table cuadernos (id_cua int primary key,id_status int, otro varchar(10), constraint fk_cua_status foreign key (id_status) references [status]) go create table personas (id_per int primary key, id_caracteristica int, otro varchar(10), constraint fk_pers_carac foreign key (id_caracteristica) references caracteristicas) go create table personas_cuadernos (id_per int, id_cua int, otro varchar(10), constraint fk_per_cua_per foreign key (id_per) references personas, constraint fk_per_cua_cua foreign key (id_cua) references Cuadernos, constraint pk_per_cua primary key (id_per,id_cua)) go select * from cuadernos cu inner join [Status] st on cu.id_status=st.id_status inner join personas_cuadernos pyc inner join personas pe inner join Caracteristicas ft on ft.id_caracteristica=pe.id_caracteristica on pe.id_per=pyc.id_per on cu.id_cua=pyc.id_cua
Comparte lo que sepas, aprende lo que no sepas (FGG)Hola amigo muchas gracias por tu ayuda, ya corregi la consulta lo que pasa es que le habia cambiado los nombres a los campos... Luego que lo revise comento que tal... Gracias de nuevo...