Como traer datos de TABLAS RELACIONADAS

14/01/2005 - 19:08 por Jose | Informe spam
en un form de mi aplicacion tengo que traer datos de una tabla de encabezado
y tambien los registros relacionados de una tabla de detalle.

Pero la de detalle esta relacionada con otra que contiene una descripcion
que debo traer tambien.

Mi pregunta es que al traer los registros de detalle debo hacer ahi mismo el
join para traer la descripcion o debo solo traer primero los datos y luego
recorrer cada registro para traer la descripcion necesaria para cada uno.

Como es mejor hacerlo ?

Si me pudieran dar un ejemplito

muchas gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Edgar Contreras
14/01/2005 - 19:30 | Informe spam
Lo puedes hacer de las dos maneras, aunque obviamente la más rápida es que
hagas el JOIN directamente en la consulta, así te evitarás hacer un ciclo
que puede tardar eternidades (al menos hablando en tiempo de procesador).

Por ejemplo, si tienes las siguientes tablas:

Clientes
==Id
Nombre

Partes
==Id
Descrip

EncOrdenes
Id
IdCliente (FK sobre Id en Clientes)
Fecha

DetOrdenes
Id
IdOrden (FK sobre Id en Ordenes)
IdParte (FK sobre Id en Partes)
Qty

En tu consulta quieres traer todos los registros Detalle de la orden 12345,
pero que te traiga el nombre del cliente que hizo la compra y la descripción
para cada Parte comprada, entonces podrías hacer un SELECT parecido al
siguiente:

SELECT o.fecha, o.id, c.nombre, d.idparte, p.descrip, d.qty
FROM detordenes d INNER JOIN partes p ON d.idparte=p.id
INNER JOIN encordenes o ON d.idorden=o.orden
INNER JOIN clientes c ON o.idcliente=c.id
WHERE o.id='12345'

Espero te sirva.



Saludos,

Edgar Contreras


[Conectado desde Tijuana, B.C. México]

DISCLAIMER: La información es presentada como es, sin ninguna
responsabilidad, sin garantía alguna y no otorga
derecho alguno.



"Jose" wrote in message
news:OoyRWNm%
en un form de mi aplicacion tengo que traer datos de una tabla de
encabezado
y tambien los registros relacionados de una tabla de detalle.

Pero la de detalle esta relacionada con otra que contiene una descripcion
que debo traer tambien.

Mi pregunta es que al traer los registros de detalle debo hacer ahi mismo
el
join para traer la descripcion o debo solo traer primero los datos y luego
recorrer cada registro para traer la descripcion necesaria para cada uno.

Como es mejor hacerlo ?

Si me pudieran dar un ejemplito

muchas gracias por su ayuda


Respuesta Responder a este mensaje
#2 Jose
15/01/2005 - 12:50 | Informe spam
Gracias. Una preguntita final: Seria mas eficiente tener eso en un SP o
en una Vista ? Cuando es preferible un SP a una vista ?


"Edgar Contreras" wrote in message
news:eYHYibm%
Lo puedes hacer de las dos maneras, aunque obviamente la más rápida es que
hagas el JOIN directamente en la consulta, así te evitarás hacer un ciclo
que puede tardar eternidades (al menos hablando en tiempo de procesador).

Por ejemplo, si tienes las siguientes tablas:

Clientes
==> Id
Nombre

Partes
==> Id
Descrip

EncOrdenes
> Id
IdCliente (FK sobre Id en Clientes)
Fecha

DetOrdenes
> Id
IdOrden (FK sobre Id en Ordenes)
IdParte (FK sobre Id en Partes)
Qty

En tu consulta quieres traer todos los registros Detalle de la orden


12345,
pero que te traiga el nombre del cliente que hizo la compra y la


descripción
para cada Parte comprada, entonces podrías hacer un SELECT parecido al
siguiente:

SELECT o.fecha, o.id, c.nombre, d.idparte, p.descrip, d.qty
FROM detordenes d INNER JOIN partes p ON d.idparte=p.id
INNER JOIN encordenes o ON d.idorden=o.orden
INNER JOIN clientes c ON o.idcliente=c.id
WHERE o.id='12345'

Espero te sirva.



Saludos,

Edgar Contreras


[Conectado desde Tijuana, B.C. México]

DISCLAIMER: La información es presentada como es, sin ninguna
responsabilidad, sin garantía alguna y no otorga
derecho alguno.



"Jose" wrote in message
news:OoyRWNm%
> en un form de mi aplicacion tengo que traer datos de una tabla de
> encabezado
> y tambien los registros relacionados de una tabla de detalle.
>
> Pero la de detalle esta relacionada con otra que contiene una


descripcion
> que debo traer tambien.
>
> Mi pregunta es que al traer los registros de detalle debo hacer ahi


mismo
> el
> join para traer la descripcion o debo solo traer primero los datos y


luego
> recorrer cada registro para traer la descripcion necesaria para cada


uno.
>
> Como es mejor hacerlo ?
>
> Si me pudieran dar un ejemplito
>
> muchas gracias por su ayuda
>
>


Respuesta Responder a este mensaje
#3 Edgar Contreras
15/01/2005 - 20:09 | Informe spam
Me alegro que te sirviera. En cuanto a tu otra pregunta, creo que el
compañero Entique Albert hace un apunte bueno en el otro mensaje que has
enviado al foro, deberías leerlo.

Saludos,

Edgar Contreras


[Conectado desde Tijuana, B.C. México]

DISCLAIMER: La información es presentada como es, sin ninguna
responsabilidad, sin garantía alguna y no otorga
derecho alguno.



"Jose" wrote in message
news:uVCXcev%
Gracias. Una preguntita final: Seria mas eficiente tener eso en un SP o
en una Vista ? Cuando es preferible un SP a una vista ?

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida