我正在尝试使用imdb数据库学习PostgreSQL,但我似乎不知道如何列出自某一年以来没有执导过电影的导演。
我有三张桌子要和一起工作
- 具有mov_id、mov_title、mov_eyear的表电影
- 具有dir_id、dir_name的表控制器
- 具有dir_id和movie_id的表movie_direction
我尝试了下面的代码来列出自1988年以来没有执导过电影的所有导演,但这不起作用。有人能指导我如何实现这一目标吗?
from movie_direction
join director d using (dir_id)
join movie m using (mov_id)
where m.mov_year < 1988
使用聚合:
select d.dir_name
from movie_direction md join
director d
using (dir_id) join
movie m
using (mov_id)
group by dir_id, d.dir_name
having max(m.mov_year) < 1988;
请注意,这是按dir_id
聚合的,以防两个控制器具有相同的名称。