在此选择中显示了 4 条记录,其中 3 条为空值,表示没有相关性,只有一条有相关性。
结果:
当我在 WHERE pc.contype <> 'p'
中添加约束时, 仅所有记录而不仅仅是 'p'。
结果:
我无法理解正在发生的事情,这是我放弃的一些规则吗?
最佳答案
NULL 不等于(或不等于)任何东西,包括 NULL 本身。忽略您正在使用 LEFT JOIN 并假设 contype
可以为空:条件 WHERE contype <> 'p'
不会仅仅因为 NULL <> 'p'
匹配 NULL是未知的,不是真的!
您将编写以下代码以获取右表中没有匹配项的行:
WHERE contype <> 'p' OR contype IS NULL
关于sql - 左连接 - 使用 where (null <> 'p') 时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56298532/