【问题标题】:LEFT OUTER JOIN with isnull带 isnull 的 LEFT OUTER JOIN
【发布时间】:2020-03-11 11:38:49
【问题描述】:

这是一个非常简单的LEFT OUTER JOIN,但我得到零返回行:

SELECT All_varieties.*,variety_join.*
FROM All_varieties LEFT JOIN 
     variety_join 
     ON All_varieties.varietyID = variety_join.varietyID
WHERE (variety_join.sourceID = Null);

但是,我使用的是查询All_varieties

SELECT plant.plantName, plant.plantGenus, plant.plantSpecies, variety.varietyLatin, variety.varietyEnglish, variety.varietyID
FROM plant LEFT JOIN 
     variety 
     ON plant.plantID = variety.plantID;

问题可能与查询All_varieties有关吗?

表格:

【问题讨论】:

  • 这能回答你的问题吗? SQL is null and = null
  • 这个不清楚。哪个查询是您有问题的查询&问题是什么? “但是,我正在使用查询 All_varieties”是什么意思? PS当这很清楚时,它将成为一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。
  • 请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS/产品和 DDL 的 SQL,其中包括约束、索引和表格初始化。
  • @ErikA 是的,基本上。谢谢
  • @philipxy 我并没有真正遵循所有这些 - 问题得到了回答。我想我把问题说得很清楚了——“......但我得到的返回行数为零。”我展示了一张我的桌子的照片——你确实看到这是在 MSAccess 中的,对吧?这是一个非常快速的小型数据库。

标签: sql ms-access outer-join


【解决方案1】:

应该是variety_join.sourceID is null 而不是variety_join.sourceID = Null

SELECT All_varieties.*,variety_join.*
FROM All_varieties LEFT JOIN 
     variety_join 
     ON All_varieties.varietyID = variety_join.varietyID
WHERE variety_join.sourceID is Null

【讨论】:

  • 谢谢。我觉得自己有多愚蠢?我不小心点击了“设计视图”按钮,它会自动更改内容:(
  • @Elizabeth,哈哈哈兄弟,有时会发生:D
猜你喜欢
  • 2014-03-16
  • 1970-01-01
  • 2014-08-10
  • 2011-01-30
  • 2010-09-29
  • 2013-03-10
  • 2018-12-04
  • 1970-01-01
相关资源
最近更新 更多