这两个SQL查询有什么区别?

时间:2013-11-26 01:47:13

标签: sql

QUERY 1:

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 注意:忽略拼写错误。

  

以上哪个查询对于“打印饮酒者”是正确的   经常只有酒吧供应他们喜欢的啤酒。 (假设每一个   饮酒者至少喜欢喝一杯啤酒,经常光顾至少一个酒吧。)“

2 个答案:

答案 0 :(得分:0)

Q1发现饮酒者在卖啤酒的酒吧喝酒。

Q2发现饮酒者不在不卖啤酒的酒吧喝酒。

它可能,但不一定意味着同样的事情。

这是作业吗?

答案 1 :(得分:0)

第一个SQL语句似乎选择频繁的饮酒者去酒吧服务他们喜欢的啤酒。

第二个SQL语句列出了频繁的饮酒者,这些饮酒者会去酒吧销售他们喜欢的啤酒。