Foros del Web » Programando para Internet » ASP Clásico »

Sentencia algo complicada

Estas en el tema de Sentencia algo complicada en el foro de ASP Clásico en Foros del Web. Hola, voy a tratar de ir directamente a mi problema. El tema es así: tengo tres tablas; una se llama USU_USUARIOS, otra PED_PEDIDOS y la ...
  #1 (permalink)  
Antiguo 11/07/2005, 10:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Sentencia algo complicada

Hola, voy a tratar de ir directamente a mi problema. El tema es así:
tengo tres tablas; una se llama USU_USUARIOS, otra PED_PEDIDOS y la última
es la que relaciona ambas, se llama UXP_USUXPED. Estos son los campos
clave para que entiendan mi problema de cada una de ellas:

USU_USUARIOS
USU_ID...Id del usuario registrado

PED_PEDIDOS
PED_ID...Id del pedido

UXP_USUXPED
PED_ID...Id del pedido
USU_ID...Id del usuario que hizó el pedido


Qué sentencia debo utilizar para sacar el detalle del pedido (que está
en la tabla PED_PEDIDOS) y los datos personales del usuario que lo realizó
(que están en la tabla USU_USUARIOS)?.
Un amigo que me está ayudando a estructurar de mejor forma mi base de
datos, me dijo que arme esta estructura, pero no encuentro la manera
adecuada de lograr esa sentencia.
Yo sé hacerlo si en la tabla PED_PEDIDOS le agrego un campo con el
Id del usuario que realizó ese pedido, pero me dijo que de esa forma no
sería correcto.
Como armarían esa sentencia ustedes?.
Muchas gracias de antemano por su ayuda.
Saludos!.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 11/07/2005, 11:43
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 7 meses
Puntos: 19
Hola Mariano.

Lo que debes hacer es unir en un SQL el id de producto de la tabla USUXPED con el id de producto de la tabla PRODUCTOS, y debes unir el id de cliente de USUXPED con el id cliente de la tabla clientes. Sería algo más o menos así:

Select * from clientes,pedidos,USUXPED
WHERE .clientes.id_cliente=USUXPED.id_cliente
AND pedidos.id_pedido=USUXPED.id_pedido
AND pedidos.id_pedido=32

De esta forma vos unis las tablas para relacionarlas. Fijate que donde dice "pedidos.id_pedido=32" es un ejemplo, luego reemplazas de 32 por una variable.
Cualquier cosa avisa nomas.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 11/07/2005, 11:48
 
Fecha de Ingreso: junio-2005
Mensajes: 114
Antigüedad: 19 años
Puntos: 0
SELECT UXP.PED_ID,
P.*
FROM PED_PEDIDOS P,
USU_USUARIOS U,
UXP_USUXPED UXP
WHERE UXP.USU_ID = U.USU_ID
AND UXP.PED_ID = P.PED_ID

Esto debería funcionar en Oracle, Access o SqlServer (estos dos últimos te van a reformular la consulta, pero así también funciona).
Por último podrías agregarle

AND U.USU_ID = <numero de usuario que necesites>

o

AND P.PED_ID = <numero de pedido que necesites>

Otra cosa: si necesitas más campos de la tabla usuario agregalas en el select como :

U.campo1 , U.campo2, etc.

Slds. Edum.
  #4 (permalink)  
Antiguo 11/07/2005, 12:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Perfecto, voy a probar haber que tal me va. Por último, eso es óptimo?, está bien que así voy a tener más estructurada mi base de datos, pero se afectarán mucho los recursos al hacer sentencias de ese estilo?. Porque con solo agregarle un campo a la tabla PED_PEDIDOS, que me guarde el ID del usuario que realizó el pedido, puedo conseguir lo que busco con una sentencia más sencilla. Que me recomiendan?
Saludos!.
__________________
Add, never Remove
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




La zona horaria es GMT -6. Ahora son las 00:01.