GATE | GATE-CS-2009 | Question 55

Consider the following relational schema:

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

Consider the following relational query on the above database:

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

Assume that relations corresponding to the above schema are not empty. Which one of the following is the correct interpretation of the above query?
(A) Find the names of all suppliers who have supplied a non-blue part.
(B) Find the names of all suppliers who have not supplied a non-blue part.
(C) Find the names of all suppliers who have supplied only blue parts.
(D) Find the names of all suppliers who have not supplied only blue parts.
(E) None


Answer: (D) (E)

Explanation: None option matched because given query returns suppliers who have not supplied any blue parts. That means it can include other than blue parts.



(A): False, as this may include blue parts and may not include “null” parts.

(B): Obviously false because it returning other than any blue part.

(C): Obviously false because it does not return this.

(D): Correct. Please try here: http://sqlfiddle.com/#!9/9ae12d/1/0

This explanation is contributed by Archit Garg.

Quiz of this Question



My Personal Notes arrow_drop_up

Improved By : Ashish Goyal 4

Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.