【发布时间】:2012-02-18 18:14:48
【问题描述】:
我有一个包含三列的表:taxon_id、scientific_name_element_id 和 parent_id。我想找到是孩子而不是父母的元素,所以是结构的终点。
我发现了一些建议我使用的来源
select taxon_id
from taxon_name_element
where taxon_id not in
(select parent_id from taxon_name_element)
但这不起作用,当我实际浏览条目并看到有taxon_id=1 和NO parent_id=1 时,我得到一个空集
相反,当我看到 parent_id 中的 taxon_id 时,我得到一个非空结果集
我做错了什么?我该如何解决这个问题?
【问题讨论】:
-
感谢 ruakh,我添加了一个非空要求并且它有效。我理解正确吗?:如果将 taxon_id 与 NULL 进行比较,它返回未知,并且未知添加到任何数字都会产生未知,因此结果是没有行?感谢您的链接k
-
是的,完全正确。像
3 <> NULL这样的东西是不确定的,因为NULL可能是三;3 NOT IN (1, 2, NULL)也是如此。 MySQL 将只返回 已知 以满足WHERE子句的行。
标签: php mysql database subtraction