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

Cruce de tablas complicado

Estas en el tema de Cruce de tablas complicado en el foro de Mysql en Foros del Web. hola estoy haciendo un sistema de facturacion donde los precios de los productos son distintos para cada cliente entonces me hice 2 tablas, la de ...
  #1 (permalink)  
Antiguo 28/06/2006, 09:36
Avatar de Rocket  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 272
Antigüedad: 22 años, 3 meses
Puntos: 4
Cruce de tablas complicado

hola
estoy haciendo un sistema de facturacion donde los precios de los productos son distintos para cada cliente entonces me hice 2 tablas, la de productos y precios.

productos
----------
idProducto
nombre
precio

precio
----------
idPrecio
idCliente
idProducto
precio

como ven el producto puede tener un precio por defecto para todos los clientes.

el problema ke tengo es cuando kiero mostrar los precios de todos los productos para un cliente especifico.

estaba probando con 2 querys dentro de usando "union". la primera seria uniendo productos y precio donde el id del producto sea el mismo y filtrando por idcliente, y funciona.

la segunda seria sacar todos los productos ke estan en productos pero ke no estan en la primera consulta y ahi no funciona por ke me los muestra todos.

la consulta es esta:

SELECT pro. * , pre.precio precioC
FROM producto pro, precio pre
WHERE (
pro.idproducto = pre.producto_idproducto
)
AND (
pre.cliente_idcliente =4
)
UNION SELECT pro. * , pro.precio precioC
FROM producto pro
LEFT JOIN (

SELECT pro. * , pre.precio precioC
FROM producto pro, precio pre
WHERE (
pro.idproducto = pre.producto_idproducto
)
AND (
pre.cliente_idcliente =4
)
)pre ON ( pro.idproducto = pre.idproducto )

alguien ke me ayude porfa... :D
  #2 (permalink)  
Antiguo 28/06/2006, 11:26
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 17 años, 11 meses
Puntos: 3
Hola:
Una consulta: veo que las dos tablas tienen como campos, "precio", cual de los dos manejas para tu consulta?.
Otro punto: no entiendo bien lo que deseas realizar...
Cita:
el problema ke tengo es cuando kiero mostrar los precios de todos los productos para un cliente especifico.
Aqui lo especificas es cierto, pero en el siguiente comentario, agregas una condición más al select, que es lo que no entiendo, para que usas el UNION?.
Disculpa si no entendi bien...
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 28/06/2006, 11:33
Avatar de Rocket  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 272
Antigüedad: 22 años, 3 meses
Puntos: 4
hola, gracias por responder.

los productos tienen un precio normal pero tambien pueden tener un precio especial para cada cliente, por eso tengo el precio en las 2 tablas y un producto puede no estar dentro de la tabla precio.

y lo ke kiero hacer es una consulta ke me muestre todos los productos con los precios especiales de los clientes, y si el producto no esta en la tabla de precios especiales ke me muestre el precio normal.

por eso se me ocurrio ke podia servir usando 2 querys en una.

se entendio un poco mas ahora?

saludos

Última edición por Rocket; 28/06/2006 a las 11:43
  #4 (permalink)  
Antiguo 28/06/2006, 14:19
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 17 años, 11 meses
Puntos: 3
Hola:
Podrias hacerlo de esta forma

Código:
SELECT pro. * , pre.precio precioC
FROM producto pro, precio pre
WHERE pro.idproducto = pre.producto_idproducto AND 
          pre.cliente_idcliente =4
UNION
 select pro.*,pre.precio from producto pro left join precio pre on
 pro.idpro=pre.idpro
 where pre.idpro is null;
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 28/06/2006, 15:26
Avatar de Rocket  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 272
Antigüedad: 22 años, 3 meses
Puntos: 4
genial, me faltaba el is null

pero no entiendo porke

gracias
  #6 (permalink)  
Antiguo 28/06/2006, 16:04
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 17 años, 11 meses
Puntos: 3
Puedes verificar esta página:
http://dev.mysql.com/doc/refman/5.0/...ubqueries.html
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
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 04:59.