SQLZOO more JOIN

这个博客展示了多个SQL查询示例,涉及从电影数据库中提取特定信息,如特定年份的电影、指定电影的年份、以'Star Trek'开头的电影ID、特定演员的ID、电影'Casablanca'和'Alien'的主要演员、'Harrison Ford'出演的所有电影、'Rock Hudson'主演的电影数量大于2的年份、由'Julie Andrews'参演的电影中主要角色的电影、拥有最多演员的1978年电影,以及与'Art Garfunkel'合作但不包括'Art Garfunkel'本身的演员。这些查询涵盖了JOIN、LIKE、WHERE、GROUP BY和HAVING等SQL操作。

链接:https://sqlzoo.net/wiki/More_JOIN_operations
在这里插入图片描述
1.
在这里插入图片描述

SELECT id, title
FROM movie
WHERE yr=1962

在这里插入图片描述

SELECT yr
FROM movie
WHERE title='Citizen Kane'

在这里插入图片描述

SELECT id,title,yr
FROM movie
WHERE title LIKE 'Star Trek%'

在这里插入图片描述

SELECT id
FROM actor
WHERE name='Glenn Close'

在这里插入图片描述

SELECT id
FROM movie
WHERE title='Casablanca'

在这里插入图片描述

SELECT actor.name
FROM actor
JOIN casting ON actor.id=casting.actorid
JOIN movie ON casting.movieid=movie.id
WHERE movie.title='Casablanca'

在这里插入图片描述

SELECT actor.name
FROM actor
JOIN casting ON actor.id=casting.actorid
JOIN movie ON casting.movieid=movie.id
WHERE movie.title='Alien'

在这里插入图片描述

SELECT movie.title
FROM movie
JOIN casting ON movie.id=casting.movieid
JOIN actor ON casting.actorid=actor.id
WHERE actor.name='Harrison Ford'

在这里插入图片描述

SELECT movie.title
FROM movie
JOIN casting ON movie.id=casting.movieid
JOIN actor ON casting.actorid=actor.id
WHERE actor.name='Harrison Ford' AND casting.ord!=1

在这里插入图片描述

SELECT movie.title, actor.name FROM 
 movie JOIN casting ON movie.id=casting.movieid
       JOIN actor ON casting.actorid=actor.id
WHERE movie.yr=1962 AND casting.ord=1

在这里插入图片描述

SELECT movie.yr, COUNT(movie.title) FROM
  movie JOIN casting ON movie.id=movieid
        JOIN actor   ON actorid=actor.id
WHERE actor.name='Rock Hudson'
GROUP BY yr
HAVING COUNT(title) > 2

在这里插入图片描述

SELECT movie.title, actor.name  FROM
 movie JOIN casting ON movie.id=movieid
       JOIN actor   ON actorid=actor.id
WHERE movie.id IN (SELECT casting.movieid FROM 
        casting JOIN actor ON casting.actorid=actor.id
       WHERE actor.name='Julie Andrews') AND casting.ord=1

在这里插入图片描述

SELECT actor.name FROM
 actor JOIN casting ON actor.id=casting.actorid
WHERE casting.ord=1
GROUP BY actor.name
HAVING COUNT(actor.id)>=15

在这里插入图片描述

SELECT movie.title, COUNT(casting.actorid) FROM
 movie JOIN casting ON movie.id=casting.movieid
WHERE movie.yr=1978
GROUP BY movie.id, movie.title
ORDER BY COUNT(casting.actorid) DESC, movie.title

在这里插入图片描述

SELECT actor.name FROM
 actor JOIN casting ON actor.id=casting.actorid
WHERE casting.movieid IN (SELECT casting.movieid FROM
                           casting JOIN actor ON casting.actorid=actor.id
                          WHERE actor.name='Art Garfunkel') 
AND actor.name!='Art Garfunkel'
ORDER BY actor.name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值