SQL Server / MS Access 帮助理解 NULL 和 LEFT JOIN 方面的 WHERE CLAUSE

LBNHTX

我有以下由 MS Access 生成的示例,用于基于 table1 生成结果,而没有在 IP 地址列上匹配 table2。

SELECT 
    Table1.ID, Table1.IP_Address, Table1.Field1 
FROM 
    Table1 
LEFT JOIN
    Table2 ON Table1.[IP_Address] = Table2.[IP Address] 
WHERE 
    (((Table2.[IP Address]) IS NULL)); 

在尝试分析“WHERE (((Table2.[IP Address]) Is Null))”时,我不明白这是怎么回事,因为我将其解释为仅返回 table2@IP 地址为 NULL 的结果。我对 WHERE 子句的理解就像是查询的过滤机制,NULL 为空。有人可以帮助我理解这个违反直觉的陈述吗?

戈登·利诺夫

首先,编写查询的更直观方法将使用NOT EXISTS

SELECT Table1.ID, Table1.IP_Address, Table1.Field1 
FROM Table1
WHERE NOT EXISTS (SELECT 1 
                  FROM Table2 
                  WHERE Table1.[IP_Address] = Table2.[IP Address]
                 ); 

也就是说,这种LEFT JOIN方法是完全合理的——而且也很明智。

LEFT JOIN保留第一个表 ( Table1)中的所有行并保留第二个表中的匹配行。如果没有匹配项,则Table2需要用一个值填充这些列——对于不匹配项,该值为NULL.

WHERE子句仅保留这些NULL值。瞧!它保留 中Table1没有匹配值的行Table2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server LEFT JOIN和WHERE子句

来自分类Dev

使用LEFT JOIN和INNER JOIN的MS-ACCESS

来自分类Dev

使用LEFT JOIN和INNER JOIN的MS-ACCESS

来自分类Dev

Linq to SQL Left Join with where子句查找条件或为null

来自分类Dev

什么是MS Access SQL等效于FULL OUTER JOIN的a.key IS NULL和b.key IS NULL

来自分类Dev

SQL INNER JOIN与使用WHERE的LEFT JOIN

来自分类Dev

MS Access SQL记录不应该出现在LEFT JOIN中

来自分类Dev

MS Access SQL记录不应该出现在LEFT JOIN中

来自分类Dev

MS Access Date()函数和SQL Server查询

来自分类Dev

MS Access Date()函数和SQL Server查询

来自分类Dev

SQL Server 在代码中导出到 Excel 和 MS Access

来自分类Dev

Laravel雄辩的LEFT JOIN WHERE NULL

来自分类Dev

SQL JOIN和LEFT OUTER JOIN

来自分类Dev

有人可以帮助我通过JOIN和LEFT JOIN理解以下SQL代码吗?(对SQL来说真的很新)

来自分类Dev

带有ON和WHERE的LEFT JOIN语句

来自分类Dev

带有 WHERE 和 AND 参数的 LEFT JOIN

来自分类Dev

使用WHERE子句的SQL LEFT OUTER JOIN

来自分类Dev

使用WHERE条件的SQL LEFT JOIN

来自分类Dev

MS-ACCESS,JOIN SQL选择

来自分类Dev

选择具有Switch语句的Top 1和Left Join Access SQL

来自分类Dev

详细解释JOIN与LEFT JOIN和WHERE条件表现建议

来自分类Dev

SQL Server:LEFT JOIN 重复行

来自分类Dev

SQL Server中的'where 1 = 1'和'where null = null'是什么

来自分类Dev

MySQL选择WHERE和LEFT JOIN与WHERE GROUP RESULT

来自分类Dev

IN Clause with WHERE clause not getting proper results in SQL Server

来自分类Dev

SQL COUNT()函数和LEFT OUTER JOIN

来自分类Dev

SQL MS-Access中带有IIF和IsNull的动态Where条件

来自分类Dev

网络支持方面的差异Ubuntu Server和Ubuntu Desktop

来自分类Dev

如果在 LEFT JOIN 和 WHERE 子句中找不到结果,如何在 MySQL 查询中返回 NULL 值

Related 相关文章

  1. 1

    SQL Server LEFT JOIN和WHERE子句

  2. 2

    使用LEFT JOIN和INNER JOIN的MS-ACCESS

  3. 3

    使用LEFT JOIN和INNER JOIN的MS-ACCESS

  4. 4

    Linq to SQL Left Join with where子句查找条件或为null

  5. 5

    什么是MS Access SQL等效于FULL OUTER JOIN的a.key IS NULL和b.key IS NULL

  6. 6

    SQL INNER JOIN与使用WHERE的LEFT JOIN

  7. 7

    MS Access SQL记录不应该出现在LEFT JOIN中

  8. 8

    MS Access SQL记录不应该出现在LEFT JOIN中

  9. 9

    MS Access Date()函数和SQL Server查询

  10. 10

    MS Access Date()函数和SQL Server查询

  11. 11

    SQL Server 在代码中导出到 Excel 和 MS Access

  12. 12

    Laravel雄辩的LEFT JOIN WHERE NULL

  13. 13

    SQL JOIN和LEFT OUTER JOIN

  14. 14

    有人可以帮助我通过JOIN和LEFT JOIN理解以下SQL代码吗?(对SQL来说真的很新)

  15. 15

    带有ON和WHERE的LEFT JOIN语句

  16. 16

    带有 WHERE 和 AND 参数的 LEFT JOIN

  17. 17

    使用WHERE子句的SQL LEFT OUTER JOIN

  18. 18

    使用WHERE条件的SQL LEFT JOIN

  19. 19

    MS-ACCESS,JOIN SQL选择

  20. 20

    选择具有Switch语句的Top 1和Left Join Access SQL

  21. 21

    详细解释JOIN与LEFT JOIN和WHERE条件表现建议

  22. 22

    SQL Server:LEFT JOIN 重复行

  23. 23

    SQL Server中的'where 1 = 1'和'where null = null'是什么

  24. 24

    MySQL选择WHERE和LEFT JOIN与WHERE GROUP RESULT

  25. 25

    IN Clause with WHERE clause not getting proper results in SQL Server

  26. 26

    SQL COUNT()函数和LEFT OUTER JOIN

  27. 27

    SQL MS-Access中带有IIF和IsNull的动态Where条件

  28. 28

    网络支持方面的差异Ubuntu Server和Ubuntu Desktop

  29. 29

    如果在 LEFT JOIN 和 WHERE 子句中找不到结果,如何在 MySQL 查询中返回 NULL 值

热门标签

归档