列出出现“哈里森福特”的电影

Posted

技术标签:

【中文标题】列出出现“哈里森福特”的电影【英文标题】:List the films in which 'Harrison Ford' has appeared 【发布时间】:2020-03-19 06:21:20 【问题描述】:

为什么这个问题的答案不正确?

数据库

movie (id(PK),  title,  yr,     director(FK),   budget,     gross)
actor (id(PK),  name )
casting (movieid(PK, FK),   actorid(PK, FK),    ord)

问题:列出“哈里森·福特”出演的电影

我的回答:

select title
from movie
were id IN
(
    select movieid as id
    from casting
    where actorid IN 
    (
        select id as actorid
        from actor
        where name = 'Harrison Ford'
    )
) X

【问题讨论】:

mysql 还是 SQL Server? 我们需要查看示例数据和预期结果。 是!= 哪里有答案。 为什么这个问题的答案不正确?你怎么知道它不正确? @danblack 我用连接解决了它。但我想在没有连接的情况下尝试它。想知道为什么这个子查询不起作用 【参考方案1】:

更正were -> where 并删除尾随X 后,语法和结果正确。

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

错误消息表明它正在使用 MariaDB

【讨论】:

谢谢@danblack。我想我在发布这个问题时错过了更正 where 的拼写。问题实际上在于我删除的尾随 X,现在它正在工作【参考方案2】:
    select title from movie inner join casting on (movie.id = casting.movieid)
    inner join actor on (casting.actorid = actor.id)
    where actor.name = 'Harrison Ford'

请在 SQL Zoo 上使用上面的 SQL 代码回答这个问题;它在与“更多连接”相关的练习中。因此,您应该使用 Joins 来解决它

【讨论】:

以上是关于列出出现“哈里森福特”的电影的主要内容,如果未能解决你的问题,请参考以下文章

用飞秋传电影电脑总出现蓝屏,怎么回事??

0510日重点:原生js修改豆瓣电影api 在angularjs里运用出现的bug

如果它出现在MYSQL中的组中,如何为每个值返回'true / false'?

python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法

K-邻近算法

MYSQL:列出表中所有出现的重复项