使用减/否存在的SQL查询

时间:2015-09-12 19:53:20

标签: mysql sql querying

我想查询这句话:

Drinkers who do not frequent the bar Henrys

现在,我知道我不能使用这样的简单查询:

SELECT dinker
FROM frequents
WHERE bar <> 'Henrys';

因为如果一个人去亨利酒吧并经常光顾其他酒吧怎么办?此人仍将包含在结果中。此查询仅筛选出仅经常使用Henrys bar的人,而不是其他任何内容。

我尝试使用MINUS运算符,但在MySQL中它似乎不支持查询:

SELECT drinker 
FROM frequents
MINUS
SELECT drinker
FROM frequents
Where bar = 'Henrys';

我想尝试使用NOT EXISTS重写它,但似乎无法让它工作或正确思考逻辑。

2 个答案:

答案 0 :(得分:2)

select drinker
  from frequents f
 where not exists (select 1
          from frequents x
         where x.drinker = f.drinker
           and x.bar = 'Henrys');

答案 1 :(得分:2)

找到所有去亨利酒吧的饮酒者然后选择不属于该阵列的饮酒者的效果

SELECT drinker
FROM frequents
WHERE drinker NOT IN (SELECT drinker FROM frequents WHERE bar = 'Henrys')