Vidyalelo
SQL · Q39

SQL

Programming · SQL · question 39

Q39

What does the following query find? (SELECT DISTINCT r.sid FROM boats b, reserves r WHERE b.bid = r.bid AND b.color = 'red') MINUS (SELECT DISTINCT r.sid FROM boats b, reserves r WHERE b.bid = r.bid AND b.color = 'green')

A.
Find the sailor IDs of all sailors who have reserved red boats but not green boats
Answer
B.
Find the sailor IDs of at least one sailor who have reserved red boats but not green boats
C.
Find the sailor Ids of atmost one sailor who have reserved red boats but not green boats
D.
None of These

Answer: Option A

Solution

Answer: Option A
Solution:
The given SQL query finds the sailor IDs of all sailors who have reserved red boats but not green boats. It does this by first selecting the sailor IDs (r.sid) of reservations where the boat color is 'red' and then subtracting the sailor IDs of reservations where the boat color is 'green'. The MINUS operator is used to find the set difference, and in this context, it retrieves the sailor IDs of sailors who have reserved red boats but not green boats. Option A is the correct choice for describing the query's result.