【发布时间】:2021-09-04 08:05:35
【问题描述】:
我有这些表:
- 导演(director_id,director_name)
- 电影(film_id、标题、年份、时长、director_id)
- 参与(act_id、film_id、薪水)
- 演员(act_id,act_name)
我想显示参演过“xxxx”或“yyyy”导演的电影的演员姓名,从未参演过“zzzz”导演的电影
这是正确的方法吗?
select act_name
from Actor
where act_id in (select p.act_id
from Participation
where p.film_id in (select f.film_id
from Film
where director_id in (select director_id
from Director
where director_name = 'xxxx' OR director_name = 'yyyy' AND director_name <> 'zzzz');
【问题讨论】:
-
使用数据库JOINS。
-
看来你实际上是在追
(NOT) EXISTS。 -
具有预期结果的样本数据会有所帮助。
标签: sql sql-server database join subquery