zoukankan      html  css  js  c++  java
  • sqlzoo答案--more join


    1.

    列出1962年首影的電影, [顯示 idtitle]

    SELECT id,title
    FROM movie
    WHERE yr=1962


    2.

    電影大國民 'Citizen Kane' 的首影年份。

    select yr
    from movie
    where title='Citizen Kane'


    3.

    列出全部Star Trek星空奇遇記系列的電影,包括idtitle 和 yr(此系統電影都以Star Trek為電影名稱的開首)。按年份順序排列。

    select id,title,yr
    from movie
    where title like'Star Trek%'
    order by yr


    4.

    id是 11768, 11955, 21191 的電影是什麼名稱?

    select title
    from movie
    where id in ('11768','11955','21191')


    5.

    女演員'Glenn Close'的編號 id是什麼?

    select id
    from actor
    where name='Glenn Close'


    6.

    電影北非諜影'Casablanca' 的編號 id是什麼?

    select id
    from movie
    where title ='Casablanca'


    7.

    列出電影北非諜影 'Casablanca'的演員名單。

    什麼是演員名單?

    使用 movieid=11768, 這是你上一題得到的結果。

    select name
    from actor join casting on id=actorid
    where movieid ='11768'


    8.

    顯示電影異型'Alien' 的演員清單。

    select name
    from actor join (select actorid
    from movie join casting on movie.id=casting.movieid
    where title='Alien') t
    on id=t.actorid


    9.

    列出演員夏里遜福 'Harrison Ford' 曾演出的電影。

    select title
    from movie join casting on id =movieid
    where actorid =(select id from actor where name='Harrison Ford')


    10.

    列出演員夏里遜福 'Harrison Ford' 曾演出的電影,但他不是第1主角。

    select title
    from movie join casting on id =movieid
    where actorid =(select id from actor where name='Harrison Ford')and ord!=1

    11.

    列出1962年首影的電影及它的第1主角。

    select title,name
    from actor join
    (select title,actorid
    from movie join casting on id=movieid
    where yr=1962 and ord=1) t on id =actorid


    12.

    尊·特拉華達'John Travolta'最忙是哪一年? 顯示年份和該年的電影數目。

    SELECT yr,COUNT(title) FROM
    movie JOIN casting ON movie.id=movieid
    JOIN actor ON actorid=actor.id
    where name='John Travolta'
    GROUP BY yr
    HAVING COUNT(title)=(SELECT MAX(c) FROM
    (SELECT yr,COUNT(title) AS c FROM
    movie JOIN casting ON movie.id=movieid
    JOIN actor ON actorid=actor.id
    where name='John Travolta'
    GROUP BY yr) AS t
    )


    13.

    列出演員茱莉·安德絲'Julie Andrews'曾參與的電影名稱及其第1主角。

    是否列了電影 "Little Miss Marker"兩次?

    她於1980再參與此電影Little Miss Marker. 原作於1934年,她也有參與。 電影名稱不是獨一的。在子查詢中使用電影編號。

    select title,name
    from movie join (select movieid,actorid from casting
    where movieid in (SELECT distinct movieid FROM casting
    WHERE actorid IN (
    SELECT id FROM actor
    WHERE name='Julie Andrews'))and ord=1) t on movie.id=movieid join actor on actorid=actor.id

    /*逻辑有点乱*/


    14.

    列出按字母順序,列出哪一演員曾作30次第1主角。

    select name
    from actor
    where id in (select
    actorid from (select actorid,count(movieid)
    from casting
    where ord=1 group by actorid
    having count(movieid)>=30) t)
    order by name


    15.

    列出1978年首影的電影名稱及角色數目,按此數目由多至少排列。

    select title,c
    from (select title,count(actorid) c
    from movie join casting on id=movieid
    where yr=1978
    group by title
    order by c desc) t

    /*为什么非要嵌套呢,,,,*/


    16.

    列出曾與演員亞特·葛芬柯'Art Garfunkel'合作過的演員姓名。

    select name
    from actor join casting on actor.id=actorid
    where movieid in (select movieid
    from casting join actor on actor.id=actorid
    where name='Art Garfunkel' ) and name!='Art Garfunkel'

  • 相关阅读:
    P2572 [SCOI2010]序列操作
    python学习笔记2
    嗯,python
    ETROBOT——审题
    条件编译
    第三章单片机简介
    模拟输入输出
    arduino库函数1
    arduino相关文献阅读
    Arduino的小灯亮起来~~~
  • 原文地址:https://www.cnblogs.com/ellencc/p/13163176.html
Copyright © 2011-2022 走看看