You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL JOIN中保留NULL值,查询标题含JEDI的影片对应演员3信息

问题核心原因

现有代码存在两处逻辑错误:

  • 左连接顺序颠倒,且在WHERE子句中增加了actor_id=3的过滤条件,直接将没有3号演员参演的含JEDI标题的影片全部筛除
  • 未输出需求要求的影片年份字段,还存在冗余的子查询和分组逻辑

修复后代码

SELECT f.title, f.release_year, fa.actor_id
FROM film f
LEFT JOIN film_actor fa 
  ON f.film_id = fa.film_id 
  AND fa.actor_id = 3
WHERE f.title LIKE '%JEDI%'
ORDER BY f.title

具体修改点说明

  • 调整连接主表为film,先通过WHERE子句筛选出所有标题含JEDI的影片,确保所有符合标题要求的影片都能保留
  • 将actor_id=3的过滤条件从WHERE子句迁移到左连接的ON子句中,仅匹配3号演员的参演记录,未匹配到的影片actor_id字段会自动返回NULL,完全符合需求规则
  • 补充了需求要求的release_year(影片年份)字段输出,删除了原代码中无效的子查询和冗余的分组逻辑

内容的提问来源于stack exchange,提问作者Kevin de Lange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:06:07