首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL zoonet more join操作#10

SQL zoonet more join操作#10
EN

Stack Overflow用户
提问于 2018-01-03 12:26:07
回答 2查看 220关注 0票数 0

我正在处理SQL Zoo.Net更多的连接操作。下面是问题的链接:http://sqlzoo.net/wiki/More_JOIN_operations

问题是#10 :列出所有1962年的电影和主要明星。我得到了这个问题的正确答案

代码语言:javascript
复制
SELECT movie.title, actor.name
FROM movie
JOIN casting
ON casting.movieid = movie.id
JOIN actor
ON actor.id = casting.actorid
WHERE movie.yr = 1962
AND casting.ord = 1

但是我想出了我自己的版本,因为列太少,所以抛出错误是行不通的。我正在尝试理解我的查询有什么问题。我不太精通SQL,所以我对它的工作原理的理解可能是错误的,我的问题可能看起来很愚蠢。下面是我的不起作用的查询。请解释一下为什么上面的查询可以正常工作,为什么我的查询不能工作。

代码语言:javascript
复制
select Title,actor.name as Actors
from movie
right join actor
on director = actor.id
where actor.id IN  ( select actorid
                    from casting
                    where movieid IN (select id
                                      from movie
                                      where yr = 1962
                                )
                    and ord = 1
                   )
order by title
EN

回答 2

Stack Overflow用户

发布于 2019-12-02 17:05:53

解决方案: SQL Zoo.Net more join操作问题10

代码语言:javascript
复制
select movie.title,actor.name from movie
join casting on movie.id = casting.movieid and casting.ord = 1 and movie.yr=1962
join actor on actor.id = casting.actorid

解释:-

首先,使用movieid、ord和yr条件加入电影和演员表。

第二,(电影和演员)通过使用字段actor of将表连接到演员。

谢谢。

票数 0
EN

Stack Overflow用户

发布于 2020-03-31 08:35:03

我的解决方案

代码语言:javascript
复制
SELECT title, name
FROM movie JOIN casting ON (movie.id = casting.movieid)
JOIN actor ON (casting.actorid = actor.id)
WHERE ord = 1 AND yr = 1962

这也行得通

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48071153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档