SQL查询以基于一个值排除项目

Ben*_*Ben 3 mysql sql

我正在从一个表中提取项目列表,基于它们被包含在另一个表中,如下所示:

select fruit.id, fruit.name from fruit, fruit_rating where fruit_rating.fruit_id=fruit.id group by fruit.name;
Run Code Online (Sandbox Code Playgroud)

这很好 - 它基本上产生了一个被某人评定的所有水果的清单.但现在,我想排除一个特定用户评价的所有水果,所以我尝试了这个:

select fruit.id, fruit.name from fruit, fruit_rating where fruit_rating.fruit_id=fruit.id and fruit_rating.user_id != 10 group by fruit.name;
Run Code Online (Sandbox Code Playgroud)

没关系,但不太对劲.它显示了所有被10岁以外的人评定的水果,但如果用户1和10都评价相同的水果,它仍然显示一个.任何人都可以告诉我如何构建一个查询,只显示用户10未评级的水果,无论其他人对它们进行了评分?

Roc*_*der 6

... WHERE fruit_rating.fruit_id=fruit.id 
      and fruit.id not in 
          (select fruit_rating.fruit_id 
             from fruit_rating 
            where fruit_rating.user_id = 10)
Run Code Online (Sandbox Code Playgroud)