Buenas de nuevo. Paso a exponerles el problema, creo que la solución es la adecuada, pero la sintaxis no debe serlo ; )
tengo tres tablas relacionadas entre si
articulos(art) tiene un id (id_art) y un nombre (nom)
proveedores(prov) tiene un id(id_prov) y un nombre(nom)
art_prov tiene el id de articulo, el id de proveedores
los articulos pueden tener null, 1 o más de un proveedor, por eso la razon de la tabla art_prov, si el articulo carece de proveedor no esta en la tabla, y si tiene mas de uno hace una fila por cada uno.
y quiero listar los articulos que no tienen proveedor, o sea que su id de articulo no aparezca en la tabla art_prov
Hasta ahi el planteamiento, creo que es correcto, lo malo es la query en si. yo pongo esto
SELECT DISTINCT id_art, nom FROM art WHERE NOT EXISTS (SELECT art_prov.id_art FROM WHERE art_prov.id_art = art.id_art );
pero me dice:
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE art_prov.id_art = art.id_art )' at line 2
De nuevo gracias por vuestro tiempo
Un saludo
PD: tambvién he intnetado con NOT IN, creia que no lo soportaba, pero parece ser que si.
Pd2: creo que ya lo he solucionado con:
SELECT nom,id_art FROM art
WHERE id_art NOT IN (SELECT id_art FROM art_prov)ORDER BY id_art;