我正在处理SQL Zoo.Net更多的连接操作。下面是问题的链接:http://sqlzoo.net/wiki/More_JOIN_operations
问题是#10 :列出所有1962年的电影和主要明星。我得到了这个问题的正确答案
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,所以我对它的工作原理的理解可能是错误的,我的问题可能看起来很愚蠢。下面是我的不起作用的查询。请解释一下为什么上面的查询可以正常工作,为什么我的查询不能工作。
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发布于 2019-12-02 17:05:53
解决方案: SQL Zoo.Net more join操作问题10
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将表连接到演员。
谢谢。
发布于 2020-03-31 08:35:03
我的解决方案
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这也行得通
https://stackoverflow.com/questions/48071153
复制相似问题