你能只用一个 select 来写这个查询吗?

Can you use only single select to write this query?

问题:找到至少被两个评论者评论过的电影的标题。请写一个 SQL 只有 一个 SELECT 没有 GROUP BY.

这里有一个查询不止一个 select:

select title,"count(M.mID)" from (select M.title,count(M.mID) from movie M,rating R where M.mID=R.mID GROUP by M.mID) WHERE "count(M.mID)">=2

enter image description here

如果在tablerating中有一个像ID这样的栏目区分审稿人,那么你可以做一个rating的自连接并加入它到 movie:

SELECT DISTINCT m.title
FROM movie m
INNER JOIN rating r1 ON r1.mID = m.mID
INNER JOIN rating r2 ON r2.mID = m.mID AND r2.ID <> r1.ID;

rating 的第二次加入将过滤掉只有 1 个评论者的电影。