列出出现“哈里森福特”的电影
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'?