是SQL左外连接相当于"不是"选择查询?

时间:2014-10-07 04:32:15

标签: sql left-join

我正在尝试评估以下2个查询的逻辑和性能。我认为它们是相同的,但访问图表显示不同的路径和显着不同的性能。有人可以解释一下这些在逻辑上是否相同吗?

select f.folderId FOLDERS_TO_DEL from store.Folders f 
    where f.ownerUserId not in (select u.userId from store.users u);


select f.folderId FOLDERS_TO_DEL from store.Folders f LEFT JOIN 
    store.Users u ON f.ownerUserId=u.userId WHERE u.userId IS NULL;

编辑:我想补充一点,在我的示例中,所有ID字段都不可为空。

1 个答案:

答案 0 :(得分:3)

不,如果Folders.ownerUserIdUsers.userId中都有NULL,则它们的行为方式会完全不同。

A simple SQLfiddle demo with a null in ownerUserId