如何仅用单个SELECT且不使用GROUP BY编写查询多评论电影的SQL
实现思路
我们可以通过评分表自连接的方式实现需求,无需嵌套子查询,也不需要使用GROUP BY,仅用单个SELECT即可完成逻辑筛选。
符合要求的SQL语句
SELECT DISTINCT M.title FROM movie M, rating R1, rating R2 WHERE M.mID = R1.mID AND M.mID = R2.mID AND R1.rID <> R2.rID;
逻辑说明
- 对
rating表分别取别名R1、R2做自连接,通过M.mID = R1.mID和M.mID = R2.mID限定两条评分记录对应同一部电影 - 通过
R1.rID <> R2.rID限定两条评分来自不同的评论者,确保该电影至少被2名评论者评论过 - 用
DISTINCT对结果去重,避免同一部电影多次匹配后重复出现在结果集中
内容的提问来源于stack exchange,提问作者Janes yang
相关产品推荐
相关产品推荐

