sql - 列出自某一年以来没有导演过电影的所有导演的姓名
问题描述
我正在尝试使用 imdb 数据库学习 PostgreSQL,但我似乎无法弄清楚如何列出自特定年份以来没有导演过电影的导演。
我有三张桌子可以使用
- 带有 mov_id、mov_title、mov_year 的电影表
- 具有 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
,以防两个董事具有相同的姓名。
推荐阅读
- arrays - 如何通过作为数字数组的参数对对象进行排序(Swift)
- php - 只想从搜索栏中搜索具有指定“字符串”的“字符串”.html 文件 - PHP
- java - 尝试测试 servlet 时出现 MockitoException
- php - 文件上传与php问题
- php - 未注册的操作(通过自定义模块)导致检测到 XSRF 攻击错误
- airflow - 气流在远程网络服务器上使用参数运行 dag
- spotify - Spotify API-Net ResumePlayback - 文档中的代码示例错误
- python - 解析网络地址字符串
- rust - 平衡支架时的使用寿命问题
- c# - 在 MVVM 环境中删除 DataGrid 中的列