Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda con consulta

Estas en el tema de Duda con consulta en el foro de Mysql en Foros del Web. Qué tal, tengo una duda, quisiera saber cómo hacer una consulta hacia 4 tablas diferentes. Trataré de explicarme: Tengo estas tablas y sus campos: proveedores ...
  #1 (permalink)  
Antiguo 25/11/2009, 18:36
 
Fecha de Ingreso: febrero-2007
Mensajes: 104
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Duda con consulta

Qué tal, tengo una duda, quisiera saber cómo hacer una consulta hacia 4 tablas diferentes.

Trataré de explicarme:

Tengo estas tablas y sus campos:

proveedores (id_proveedor, nombre, direccion..etc)
contratos (id_contrado, id_proveedor, num_contrato.....etc)
sucursales (id_sucursal, id_contrato, nombre)
clientes (id_cliente, id_sucursal, nombre_cliente....etc)

Teniendo en cuenta que un proveedor puede tener varios contratos, un contrato varias sucursales y una sucursal varios clientes.

Quiero saber cómo hacer una consulta que me despliegue todos los clientes de cierto proveedor (los proveedores los despliego en un combo), si la tabla clientes no está relacionada directamente con la tabla proveedores.

He leido que se puede utilizar inner join, left join, pero no he entendido del todo....

Espero haberme explicado.....espero su ayuda, gracias
  #2 (permalink)  
Antiguo 26/11/2009, 13:10
Avatar de dalyla  
Fecha de Ingreso: septiembre-2005
Mensajes: 135
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Duda con consulta

Cita:
Iniciado por fili9 Ver Mensaje
proveedores (id_proveedor, nombre, direccion..etc)
contratos (id_contrado, id_proveedor, num_contrato.....etc)
sucursales (id_sucursal, id_contrato, nombre)
clientes (id_cliente, id_sucursal, nombre_cliente....etc)
Bueno no es dificil

Seria algo asi como
Select c.nombre, ...
from proveedores p
left join contratos ct on ct.id_proveedor=p.id_proveedor
left join sucursales s on s.id_contrato=ct.id_contrato
left join clientes c on c.idsucursal=s.idsucursal
where p.id_proveedor = ....
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 19:29.