Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 28-jun-2006, 09:36   #1 (permalink)
Rocket está en el buen camino
 
Avatar de Rocket
 
Fecha de Ingreso: noviembre-2002
Ubicación: aki en mi casa, al lado del vecino
Mensajes: 253
Triste 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
Rocket está desconectado   Responder Citando
Antiguo 28-jun-2006, 11:26   #2 (permalink)
PequeñoMauro está en el buen camino
 
Avatar de PequeñoMauro
 
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 599
Enviar un mensaje por MSN a PequeñoMauro
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....."
PequeñoMauro está desconectado   Responder Citando
Antiguo 28-jun-2006, 11:33   #3 (permalink)
Rocket está en el buen camino
 
Avatar de Rocket
 
Fecha de Ingreso: noviembre-2002
Ubicación: aki en mi casa, al lado del vecino
Mensajes: 253
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-jun-2006 a las 11:43.
Rocket está desconectado   Responder Citando
Antiguo 28-jun-2006, 14:19   #4 (permalink)
PequeñoMauro está en el buen camino
 
Avatar de PequeñoMauro
 
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 599
Enviar un mensaje por MSN a PequeñoMauro
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....."
PequeñoMauro está desconectado   Responder Citando
Antiguo 28-jun-2006, 15:26   #5 (permalink)
Rocket está en el buen camino
 
Avatar de Rocket
 
Fecha de Ingreso: noviembre-2002
Ubicación: aki en mi casa, al lado del vecino
Mensajes: 253
genial, me faltaba el is null

pero no entiendo porke

gracias
Rocket está desconectado   Responder Citando
Antiguo 28-jun-2006, 16:04   #6 (permalink)
PequeñoMauro está en el buen camino
 
Avatar de PequeñoMauro
 
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 599
Enviar un mensaje por MSN a PequeñoMauro
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....."
PequeñoMauro está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:46.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93