gpt4 book ai didi

mysql - 下面的 left join sql 语句在做什么?

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:39 25 4
gpt4 key购买 nike

以下摘自高性能mysql书:

select film.film_id from sakila.film 
left outer join sakila.film_actor using(film_id)
where film_actor.film_id is null;

我不明白它在做什么。在加入之前,where 子句是否过滤 film_actor。如果是这样,join 是如何执行的(film_id 已经为 null,它如何使用 film_id 与 film 连接)

最佳答案

这是一个标准的 SQL 模式,用于查找没有子行的父行,在本例中是没有 Actor 的电影。

之所以有效,是因为遗漏的左联接在遗漏的联接行中具有所有空值,并且在进行联接后评估 where 子句。将联接行中实际上不能为 null 的列指定为 null 只会返回困惑的联接。

另请注意,您不需要 distinct,因为只有一个这样的行会为丢失的连接返回。

关于mysql - 下面的 left join sql 语句在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27585982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com