gpt4 book ai didi

MySQL 问题 - 查找某人评分为 5 星而其他人评分少于 3 星的每部电影的标题和年份

转载 作者:行者123 更新时间:2023-11-29 15:34:11 25 4
gpt4 key购买 nike

我提供了三个表,一个名为 Person,它有一个 id(主键)和 name 属性,一个包含标题、年份的 Movie 表(其中标题和年份一起为主键),最后一个 Saw 表,它连接之前的两个表,具有主键、id、标题、年份和属性 numStars(对电影进行评分的人)。

回顾一下:

人员表:

id

姓名

电影表:

标题

年份

锯台:

id

标题

年份

星数

我对如何找到一部用户评分为 5 星和用户评分低于 3 星的电影感到困惑。我应该通过 WHERE IN 和连接来执行此操作。任何帮助将不胜感激。

最佳答案

一种解决方案是使用聚合和 having 子句:

select 
m.title,
m.year
from movie m
inner join saw s
on s.title = m.title
and s.year = m.year
group by m.title, m.year
having
having
sum(numStars = 5) >= 1
and sum(numStars < 3) >= 1

另一个避免使用聚合的选项是使用两个带有相关子查询的 exists 条件:

select 
m.title,
m.year
from movie m
where
exists (
select 1
from saw s
where
s.title = m.title
and s.year = m.year
and s.numStars = 5
)
and exists (
select 1
from saw s
where
s.title = m.title
and s.year = m.year
and s.numStars < 3
)

关于MySQL 问题 - 查找某人评分为 5 星而其他人评分少于 3 星的每部电影的标题和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58421989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com