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

Duda WHERE en consulta

Estas en el tema de Duda WHERE en consulta en el foro de Mysql en Foros del Web. Hola, tengo que hacer una consulta entre estas 3 tablas: COMPRAS: Id_Compra, Id_Distribuidor DETALLECOMPRAS:Id_Compra, RefNom, RefNum, PrecioCompra ARTICULOS: RefNom, RefNum, Cantidad "user_distribuidor" --> distribuidor introducido ...
  #1 (permalink)  
Antiguo 09/04/2008, 14:55
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 5 meses
Puntos: 0
Duda WHERE en consulta

Hola, tengo que hacer una consulta entre estas 3 tablas:

COMPRAS: Id_Compra, Id_Distribuidor
DETALLECOMPRAS:Id_Compra, RefNom, RefNum, PrecioCompra
ARTICULOS: RefNom, RefNum, Cantidad
"user_distribuidor" --> distribuidor introducido por el usuario

Mi pregunta es que diferencia hay entre colocar el WHERE al final o entre los INNER JOINs

SELECT articulos.RefNom, articulos.RefNum
FROM articulos
INNER JOIN detallecompras ON detallecompras.RefNum=articulos.RefNum AND detallecompras.RefNom=articulos.RefNom
INNER JOIN compras ON compras.IdCompra=detallecompras.Id_compra AND Id_distribuidor="user_distribuidor"
WHERE Cantidad>0

SELECT articulos.RefNom, articulos.RefNum
FROM articulos
INNER JOIN detallecompras ON detallecompras.RefNum=articulos.RefNum AND detallecompras.RefNom=articulos.RefNom
WHERE Cantidad>0
INNER JOIN compras ON compras.IdCompra=detallecompras.Id_compra AND Id_distribuidor="user_distribuidor"

Muchas gracias!!
  #2 (permalink)  
Antiguo 09/04/2008, 17:07
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Duda WHERE en consulta

Ya tengo la solucion...el WHERE hay que ponerlo al final (dentro del INNER JOIN no funciona), y también hay que marcarle la tabla del que lo sacamos...es decir, mi consulta quedaría así:

SELECT articulos.RefNom, articulos.RefNum FROM articulos INNER JOIN detallecompra ON detallecompra.RefNum=articulos.RefNum AND detallecompra.RefNom=articulos.RefNom INNER JOIN compras ON compras.Id_Compra=detallecompra.Id_compra WHERE articulos.Cantidad>0
  #3 (permalink)  
Antiguo 10/04/2008, 01:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Duda WHERE en consulta

Correcto!!

Código:
SELECT articulos.RefNom, articulos.RefNum 
        FROM articulos INNER JOIN detallecompra 
                                          ON detallecompra.RefNum=articulos.RefNum 
                                               AND detallecompra.RefNom=articulos.RefNom
                                INNER JOIN compras 
                                          ON compras.Id_Compra=detallecompra.Id_compra 
        WHERE articulos.Cantidad>0
Si los join no fueran inner sino left o right recuerda encerrarlos entre parentesis adecuadamante.

Quim
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 14:55.