MS Access查询:如何找出空字段的记录?

3
我在 MS Access 2010 中的查询遇到了一些问题。我有一个巨大的表格 (tblItemRunData),主要由外键组成。现在我想将其与相关表格结合起来制作查询,以获取每个外键后面的信息。我的问题是,tblItemRunData 中的某些字段或相关表格中的某些字段可能为空。如果它们为空或类似于 Null,则查询不会向我显示记录。我知道为什么会发生这种情况:http://office.microsoft.com/en-us/access-help/about-working-with-blank-fields-in-queries-mdb-HP005188534.aspx 但我找不到一种方法来操纵查询,以显示所有可能为空或非空的字段的记录。我尝试将我想要使用的每个字段的条件设置为:Is Null OR Is Not Null,但这对我没有用。希望我的解释足够清楚,你能理解我的问题,也希望有人能给我答案。非常感谢。先行致谢。

你能添加你的查询吗?如果我们不知道查询是什么,很难告诉你它有什么问题。 - dub stylee
我想也许有人可以在不发布SQL的情况下帮助我。我在“设计视图”中“点击”了查询,里面有大约20个ON和15个左右的JOIN。但是如果你真的想看到它,我可以编辑我的帖子。 - mafraqs
听起来你的查询应该将tblItemRunData表作为第一个列出的表,然后通过它们各自的适当键LEFT JOIN所有表。 然后,你的WHERE子句应该像这样:tblOrganization.orgID_Ref IS NULL或tblEmployees.FinanceOwnerID_Ref IS NULL或tblEmployees.TechOwnerID_Ref IS NULL等,依次查看每个加入的表。 - VBlades
1个回答

2
涉及多个表的查询可能会变得复杂,当出现错误时也更难调试。效率会降低,因为您涉及了更多可能不属于实际关系模式的表。如果确实需要它们,请尝试解决问题的最佳方法-"分而治之"。
尝试将连接拆分到子查询中以获得更好的结果。同时,您需要涉及的JOIN不是默认的“INNER” JOIN。您需要有LEFT或RIGHT JOIN。可以在此处找到有关JOIN的更多信息,其中包含非常好的数据集示例:http://www.w3schools.com/sql/sql_join.asp 您可以通过这些示例来理解每个示例。在许多表中进行多次连接还会出现两个其他可能影响的问题。返回的数据集可能无法更新。应逐个执行JOIN。如果尝试将所有查询转换为Right/Left join,则可能会出现错误,说明您不应该加入。

非常感谢您的提示。目前我正在尝试将我的查询拆分为子查询,这似乎正在发挥作用(与一些左/右联接结合使用)。我还没有完成,但我希望它能够正常工作 :) - mafraqs
@Flouks,很高兴听到你取得了不错的成果。继续加油!如果你遇到了困难,请回帖,我们会尽可能地帮助你!祝你好运。 - PaulFrancis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接