Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从两个表中选择并与第三个表进行比较的SQL查询_Mysql_Sql_Oracle - Fatal编程技术网

Mysql 从两个表中选择并与第三个表进行比较的SQL查询

Mysql 从两个表中选择并与第三个表进行比较的SQL查询,mysql,sql,oracle,Mysql,Sql,Oracle,我是sql新手,正在尝试执行查询 我已经创建了以下表格,它们工作正常 create table ACTOR ( actor_name varchar(30), gender varchar(8), date_of_birth date, primary key(actor_name) ); 我一直在琢磨如何和演员表进行比较 select movie_title as MOVIE_TITLE 对于条件计数,您可以在表达式中使用SUM() SELECT m.mov

我是sql新手,正在尝试执行查询

我已经创建了以下表格,它们工作正常

create table ACTOR
(
   actor_name varchar(30),
   gender varchar(8),
   date_of_birth date,
   primary key(actor_name)
);
我一直在琢磨如何和演员表进行比较

 select movie_title as MOVIE_TITLE

对于条件计数,您可以在表达式中使用
SUM()

SELECT 
  m.movie_title,
  m.release_year,
  SUM(a.gender = 'female') no_of_female_members,
  SUM(a.gender = 'male') no_of_male_members,
  COUNT(c.actor_name) no_of_all_members 
FROM
  MOVIE m 
  LEFT JOIN CAST_MEMEBER c 
    ON (m.movie_title = c.movie_title AND m.release_year = c.release_year) 
  JOIN ACTOR a 
    ON (a.actor_name = c.actor_name) 
GROUP BY m.movie_title,m.release_year

如何比较,你的意思是一个
加入
演员组成员
?这是我到目前为止尝试的SQL>选择电影名称作为电影名称,发行年份作为发行年份,actor.actor\u name,actor.gender from movie movie,actor-actor 2其中actor.actor\u name=CAST\u MEMEBER.actor\u name;我们使用表和列别名来更改用于引用对象的名称。除非您觉得需要打字练习,否则将
movie\u title别名为movie\u title
,没有任何意义。@APC,我想以“as”操作符的方式显示它。movie\u title将显示为
movie\u title
。这是默认的行为。我们只需要在需要与大写列名不同的内容时使用别名。表别名也一样。@M_Khalid,谢谢你的回答,但只是一个后续问题,没有女性成员,@Mani它是
SUM(a.gender='female')结果的别名。
它不是一个变量,只是当前查询的临时列谢谢你帮我理解
select movie_title,
       release_year,
       count(decode(t.gender,'FEMALE',1)) female_actors
from movie m , (select c.movie_title 
                       a.gender,
                       c.release_year
                from cast_member c, actor a
                where c.movie_title = a.movie_title
                  and c.actor_name = a.actor_name) t
where m.movie_title  = t.movie_title
  and m.release_year = t.release_year
group by m.movie_title ,t.release_year