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!