Considere el siguiente esquema relacional:
Suppliers(sid:integer, sname:string, city:string, street:string) Parts(pid:integer, pname:string, color:string) Catalog(sid:integer, pid:integer, cost:real)
Considere la siguiente consulta relacional en la base de datos anterior:
SELECT S.sname FROM Suppliers S WHERE S.sid NOT IN (SELECT C.sid FROM Catalog C WHERE C.pid NOT IN (SELECT P.pid FROM Parts P WHERE P.color<> 'blue'))
Suponga que las relaciones correspondientes al esquema anterior no están vacías. ¿Cuál de las siguientes es la interpretación correcta de la consulta anterior?
(A) Busque los nombres de todos los proveedores que hayan suministrado una pieza que no sea azul.
(B) Encuentre los nombres de todos los proveedores que no hayan suministrado una pieza que no sea azul.
(C) Encuentre los nombres de todos los proveedores que han suministrado solo piezas azules.
(D) Encuentre los nombres de todos los proveedores que no han suministrado solo piezas azules.
Respuesta: (D)
Explicación: Ninguna opción coincide porque la consulta dada devuelve proveedores que no han suministrado ninguna pieza azul . Eso significa que puede incluir otras partes además de las azules.
(A): Falso, ya que esto puede incluir partes azules y no incluir partes «nulas».
(B): Obviamente falso porque no regresa ninguna parte azul.
(C): Obviamente falso porque no devuelve esto.
(D): Correcto. Intente aquí: http://sqlfiddle.com/#!9/9ae12d/1/0
Esta explicación es aportada por Archit Garg .
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA