📜  门| GATE-CS-2009 |第55章

📅  最后修改于: 2021-06-29 10:51:40             🧑  作者: Mango

考虑以下关系模式:

Suppliers(sid:integer, sname:string, city:string, street:string)
Parts(pid:integer, pname:string, color:string)
Catalog(sid:integer, pid:integer, cost:real)

考虑上述数据库中的以下关系查询:

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'))

假定对应于上述架构的关系不为空。以下哪一项是对上述查询的正确解释?
(A)查找提供了非蓝色零件的所有供应商的名称。
(B)查找未提供非蓝色零件的所有供应商的名称。
(C)查找仅提供蓝色零件的所有供应商的名称。
(D)查找不只提供蓝色零件的所有供应商的名称。答案: (D)
说明:没有选项匹配,因为给定查询返回了未提供任何蓝色零件的供应商。这意味着它可以包括蓝色部分以外的其他部分。

(A):错误,因为这可能包括蓝色部分,并且可能不包括“空”部分。

(B):显然是错误的,因为它返回的不是蓝色部分。

(C):显然为假,因为它不返回此值。

(D):正确。请在这里尝试:http://sqlfiddle.com/#!9/9ae12d/1/0

该解释由Archit Garg提供
这个问题的测验