LEFT JOIN不返回NULL

时间:2016-05-20 12:46:02

标签: sql join null ms-access-2013

我想问题归结为:使用LEFT OUTER JOIN 不会按预期返回值的极端情况是什么?因为在结果集中我期望我加入的字段(itemID)+行中不匹配的任何NULL值,但是itemID没有出现。

的信息:

qry_HersheySAPMaxDate2返回95行。

qry_HersheySAPMaxDate2可能包含MaxOfMaxOfjob_DateSumOfSumOfqty_on_handproduct_codewhse的NULL值,而 {{1} }和ID将始终具有值。

item返回85行。

qry_HersheySAPMaxDate3在任何字段中都没有任何NULL值,但排除了10 qry_HersheySAPMaxDate3id行。

查询:

item

使用我的查询结果集+其中一个答案中的建议改为使用LEFT OUTER JOIN:

Screenshot

2 个答案:

答案 0 :(得分:1)

您抱怨您的查询产生完全空行。让我们看看为什么:

你将qry3连接到qry2。这意味着当qry3中的qry2记录不匹配时,所有列设置为null的伪qry3记录将被连接。

在您的查询中,您只选择qry3中的字段,因此在外连接情况下,它们都是空的。选择qry2.ID和qry2.item而不是qry3.ID和qry3.item来查看不匹配的值:

SELECT 
  qry_HersheySAPMaxDate2.ID, 
  qry_HersheySAPMaxDate2.item, 

答案 1 :(得分:0)

如果希望将NULL值包含在结果

中,则应使用LEFT OUTER JOIN