2013-11-26 5 views
0

QUERY 1:Что разница между этими двумя SQL запросов?

SELECT Frequents.drinker FROM Frequents 
WHERE Frequents.drinker NOT IN ( 
SELECT F.drinker FROM Frequents AS F 
WHERE F.bar NOT IN 
( 
    SELECT bar FROM Sells, Likes WHERE Sells.beer = Likes.beer AND Likes.drinker = F.drinker 
)  
) 

QUERY 2:

SELECT Frequents.drinker FROM Frequents, Sells, Likes 
Where Frequents.drinker = Likes.drinker and Sells.bar IN(
    SELECT bar from Sells where Sells.beer = Likes.beer) 

связь Схема

enter image description here Примечание: Игнорировать написаний ошибки.

Какой из вышеупомянутого запроса является правильным для «печати пьющих что часто только бары, которые служат пива они любят. (Предположим, что каждый пьющий любит по крайней мере, одно пиво и часто посещает по крайней мере, один бар.)»

ответ

0

Q1 находит пьющие, которые пьют в барах, которые продают пиво.

Q2 находит пьющие, которые не пьют в барах, которые не продают пиво.

Это может быть, но не обязательно, означает то же самое.

Является ли это назначение?

+0

Q1 подходит к заданиям и Q2 является то, что я представил, и я полагаю, что мой вариант запроса является правильным. –

0

Первого оператор SQL, кажется, чтобы выбрать Частые пьющие, которые идут в бары, которые не сервер их предпочтительное пива.

Второй SQL оператор перечисляет частые пьющих, которые идут в бары, которые продают их предпочтительное пиво.

Смежные вопросы