【发布时间】:2021-12-27 02:49:58
【问题描述】:
我正在执行一项任务,该任务需要我生成一个显示名称、年份和演员编号的电影列表,其中标题中包含“JEDI”一词。如果电影中有演员 3,则在演员编号列中仅显示演员编号 3,否则显示 null。按片名排序。
我目前的代码如下:
select film_actor.film_id, title, actor_id from film_actor
left join film
on film.film_id = film_actor.film_id
where actor_id in (select actor_id from film_actor where actor_id = "3")
and title like "%JEDI%"
group by film_id
order by title
这仅输出与 actor_id = "3" 匹配的结果,但它不显示标题中有 "JEDI" 但 actor_id 不是 3 的两部电影。 This image shows the desired result on the right, and my result on the left
我可以在我的代码中进行哪些更改以获得所需的结果?
非常感谢!
【问题讨论】:
-
由于您将
film加入到film_actor,您将从film_actor和NULL获得所有可能的结果,如果没有相应的film演员。您要么正在寻找RIGHT连接,要么想要在查询中切换这两个表
标签: mysql sql data-modeling