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

Como hago esta consulta!!??

Estas en el tema de Como hago esta consulta!!?? en el foro de Bases de Datos General en Foros del Web. Wenas compañeros! Ante todo deciros que me encanta vuestro foro y que aprendo mucho navegando por el El motivo de mi post es que llevo ...
  #1 (permalink)  
Antiguo 03/06/2004, 01:55
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
Como hago esta consulta!!??

Wenas compañeros! Ante todo deciros que me encanta vuestro foro y que aprendo mucho navegando por el

El motivo de mi post es que llevo 2 dias dandole weltas a como hacer una consulta en mysql pero no doy con ella. A ver si me se explicar...

Tengo una tabla articulos:

ID_ART
CodArt
Descripcion
....

Y otra tabla ventas:

ID_VEN
ID_CLI
CodVen
...

Como la relacion entre articulos y ventas es 'n' a 'n', logicamente utilizo una tabla intermedia artven, en la cual tengo estos campos entre otros:

ID_VEN
ID_ART
...

Entonces, si por ejemplo la venta 1 tiene los articulos 1,2 y 3, la tabla artven tendria algo como esto:

ID_VEN-ID_ART
____________
1-1
1-2
1-3

Espero que hasta aqui me sigais
Pues bien, al sacar los articulos de esta venta 1, voy a la tabla artven y saco todos aquellos articulos que tengan el ID_VEN=1. Esta consulta es facil y la tengo hecha, no os preocupeis que no soy tan malo jejeje

El problema viene cuando estoy modificando la venta y quiero añadir mas articulos. Para ello uso un combobox que me lista todos los articulos de la tabla articulos que no esten ya en la tabla artven. Hice esta consulta:

select articulos.* from articulos left join artven on artven.ID_ART=articulos.ID_ART where artven.ID_ART IS NULL order by articulos.Modelo

Y no me lo hace bien... Por que? pues porque esta select me saca los articulos que estan en articulos y que no estan en artven. El problema radica en que no discrimina el ID_VEN, con lo cual si seguimos con el ejemplo anterior, y queremos ahora añadir articulos a una nueva venta 2, en el combobox ya no me da la posibilidad de añadir los articulos 1,2 ni 3 cuando deberia ser asi, ya que es otra venta distinta

Por ello hice esta otra consulta añadiendo esto al where:

select articulos.* from articulos left join artven on artven.ID_ART=articulos.ID_ART where artven.ID_VEN=1 and artven.ID_ART IS NULL order by articulos.Modelo

Logicamente el ID_VEN de la consulta no es siempre 1, es una variable php que recoge el valor ID_VEN. Pero no funciona, no me lista ningun articulo, alguien sabe que hago mal???

PD: perdonad por el tocho de post, pero queria explicarlo bien, espero que se haya entendido y me ayudeis. GRACIAS!

Última edición por OpcioWeb; 03/06/2004 a las 01:58
  #2 (permalink)  
Antiguo 03/06/2004, 02:53
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
ya esta!!!! lo he sacado!!! Despues de 1 hora pensando y sacando humo de la neurona lo he conseguido jejeje

Weno, os pongo lo que he sacado por si a alguien mas le puede ayudar:

select articulos.* from articulos left join artven on artven.ID_ART=articulos.ID_ART where (artven.ID_ART IS NULL OR (artven.ID_ART IS NOT NULL and artven.ID_VEN<>1)) order by articulos.Modelo

Cual es la solucion? Pues con la primera parte del where le digo que me saque todos los articulos de la tabla articulos que no esten en artven. Y con la segunda parte le digo: OR si estan, me los muestras solamente si no pertenecen a la venta actual.
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 08:58.