Mysql 算不算拥有?

Mysql 算不算拥有?,mysql,sql,Mysql,Sql,我想回答的问题是,每部电影的总收入是多少,至少有一部电影的收视率大于4,并且预算超过2000万美元 返回每部电影的标题、预算和总销售额。 将表格设置为: 电影表:电影id、电影名称、发行年份、总销售额、预算 演员表:演员id、演员姓名、代理人、出生日期 演员表:演员id、电影id、演员id、角色(1=主角,2=支持) 评论表:评论id、评论人姓名、电影id、评分(1、2、3、4或5) 我写的代码是这样的,但我不确定我是否可以使用计数 我可以用我在这里展示的东西来得到上面的结果吗 SELECT m

我想回答的问题是,每部电影的总收入是多少,至少有一部电影的收视率大于4,并且预算超过2000万美元

返回每部电影的标题、预算和总销售额。
将表格设置为:

电影表:电影id、电影名称、发行年份、总销售额、预算
演员表:演员id、演员姓名、代理人、出生日期
演员表:演员id、电影id、演员id、角色(1=主角,2=支持)
评论表:评论id、评论人姓名、电影id、评分(1、2、3、4或5)

我写的代码是这样的,但我不确定我是否可以使用计数

我可以用我在这里展示的东西来得到上面的结果吗

SELECT m.movie_name, m.budget, m.gross_sales
FROM Movies_Table as m
JOIN Reviews_Table as rev on m.movie_id = rev.movie_id
WHERE m.budget >= 20000000
HAVING(COUNT(rev.rating >= 4)) > 0;

使用
SUM
而不是
COUNT
,因为条件的结果将是0或1。另外,添加相关的GROUPBY子句

大概是这样的:

select m.movie_name,
    m.budget,
    m.gross_sales
from Movies_Table as m
join Reviews_Table as rev on m.movie_id = rev.movie_id
where m.budget >= 20000000
group by m.movie_name,
    m.budget,
    m.gross_sales
having sum(rev.rating >= 4) > 0;

使用
SUM
而不是
COUNT
,因为条件的结果将是0或1。另外,添加相关的GROUPBY子句

大概是这样的:

select m.movie_name,
    m.budget,
    m.gross_sales
from Movies_Table as m
join Reviews_Table as rev on m.movie_id = rev.movie_id
where m.budget >= 20000000
group by m.movie_name,
    m.budget,
    m.gross_sales
having sum(rev.rating >= 4) > 0;

因为您只需要来自电影表的值,而不需要联接,所以可以使用下面的sql

我已经为oracle编写了此sql。 语法可能会根据您的数据库服务器进行更改。

SELECT m.movie_name, m.budget, m.gross_sales
FROM Movies_Table as m
WHERE m.budget >= 20000000
  AND exists (select 'x' from Reviews_Table as rev
              where m.movie_id = rev.movie_id
                and rev.rating >= 4)

因为您只需要来自电影表的值,而不需要联接,所以可以使用下面的sql

我已经为oracle编写了此sql。 语法可能会根据您的数据库服务器进行更改。

SELECT m.movie_name, m.budget, m.gross_sales
FROM Movies_Table as m
WHERE m.budget >= 20000000
  AND exists (select 'x' from Reviews_Table as rev
              where m.movie_id = rev.movie_id
                and rev.rating >= 4)
试试这个

select m.movie_name,
        m.budget,
        m.gross_sales
    from Movies_Table as m
    join Reviews_Table as rev on m.movie_id = rev.movie_id
    where m.budget >= 20000000 and  rev.rating >= 4
    group by movie_name
试试这个

select m.movie_name,
        m.budget,
        m.gross_sales
    from Movies_Table as m
    join Reviews_Table as rev on m.movie_id = rev.movie_id
    where m.budget >= 20000000 and  rev.rating >= 4
    group by movie_name

这甚至不会运行,因为您有两个字段不在group by或aggregates中…这甚至不会运行,因为您有两个字段不在group by或aggregates中。。。