Bases de Datos > MySQL

 Error con subconsulta NOT EXISTS

(1/1)

Kyrylys:
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


--- Código: Text --- 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:

--- Citar ---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

--- Fin de la cita ---

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:

--- Código: Text ---SELECT nom,id_art FROM artWHERE id_art NOT IN (SELECT id_art FROM art_prov)ORDER BY id_art; 

Navegación

[0] Índice de Mensajes

Ir a la versión completa