-1

我正在尝试做一个关于 SQL 的作业问题。我的问题是:

列出所有在 1970 年之前和 1990 年之后出演电影的演员。

这是数据库模式。

在此处输入图像描述

我的查询是这样的:

df1= pd.read_sql_query("SELECT DISTINCT(NAME) FROM PERSON WHERE PID IN(SELECT PID FROM M_CAST WHERE MID IN (SELECT MID FROM MOVIE WHERE YEAR>1970 OR YEAR<1990));",conn)

结果是一个空数据集。

我什至尝试过加入但没有运气。我使用连接的查询看起来像这样。

Select p.name from Person P join M_Cast MC on MC.PID=P.PID where MC.MID IN(Select MID from movie where year<1970 or year>1990)

两个查询都在运行,没有任何错误,但没有给出结果。我以为我对 SQL 很清楚,但不确定我在哪里错了。有人可以帮忙吗?我想知道我到底做错了什么

提前致谢

4

1 回答 1

0
select 
Name 
from
Person
where PID in (
--this select finds persons fitting the criteria
select 
MC.PID 
from 
Movie M   join 
M_Cast MC on M.MID = MC.MID
where 
[year] > 1990  --year is a reserved word in most SQL languages and must be in []
intersect --intersect finds all that match both criteria
select 
pid 
from 
Movie M   join 
M_Cast MC on M.MID = MC.MID
where 
[year] < 1970) --year is a reserved word in most SQL languages and must be in []
于 2020-02-09T23:12:54.317 回答