所以问题出在:获取电影《异形》的演员表。
我的初始代码是:
(65536, 4, 4)
[[0 0 0 0]
[0 1 0 0]
[1 1 0 1]
[0 0 1 0]]
出现错误是因为每个演员都被多次列出,我通过选择DISTINCT名称解决了这个问题,但是我有点不明白为什么会有多个演员列表吗?子查询仅提供演员表,该演员表在演员表中列出,且movieid与标题“ Alien”相对应。因此,此查询只有一个不同的actorid。
答案 0 :(得分:0)
您将为每个演员获得多行,因为每个演员都在多部电影中(大概)。您正在按<演员>演员进行过滤,但是已经有多行了。
因此,您不需要外部join
:
select a.name
from actor a
where a.id in (select c.actorid
from casting c join
movie m
on c.movieid = m.id
where m.title = 'alien'
);
Voila!没有重复,也没有select distinct
。
更重要的是: