我的数据库中有两个表,名为ratings 和movies。
评分:
| id | movie_id | rating |
电影:
| id | title |
典型的电影记录可能是这样的:
| 4 | Cloverfield (2008) |
而且 Cloverfield 可能有多个评分记录,如下所示:
| 21 | 4 | 3 |
(rating number 21, on movie number 4, giving it a rating of 3)
| 22 | 4 | 2 |
(rating number 22, on movie number 4, giving it a rating of 2)
| 23 | 4 | 5 |
(rating number 23k on movie number 4, giving it a rating of 5)
问题:
如何创建 JOIN 查询以仅选择电影表中评级表中评级数超过 x
的行?例如,在上面的示例中,如果 Cloverfield 在评分表中只有一个评分,并且 x
为 2,则不会被选中。
感谢您的帮助或建议!
最佳答案
使用 HAVING 子句。沿着这些线的东西:
SELECT movies.id, movies.title, COUNT(ratings.id) AS num_ratings
FROM movies
LEFT JOIN ratings ON ratings.movie_id=movies.id
GROUP BY movies.id
HAVING num_ratings > 5;
关于sql - 如何创建一个 MySQL JOIN 查询,只选择一个表中的行,而另一个表中存在对该行的一定数量的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/175733/