ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

php – MySQL“NOT IN”查询不起作用

2019-07-26 03:14:43  阅读:350  来源: 互联网

标签:subtract php mysql database


我有一个包含三列的表: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是什么时,我得到一个非空的结果集

我究竟做错了什么?我怎样才能解决这个问题?

解决方法:

taxon_name_element.parent_id中是否有任何NULL?

查询……

select taxon_id 
from taxon_name_element
where taxon_id not in (
    select parent_id
    from taxon_name_element
)

……相当于……

select taxon_id 
from taxon_name_element
where
    taxon_id <> parent_id_1
    AND taxon_id <> parent_id_2
    ...
    AND taxon_id <> parent_id_N

…其中parent_id_X是当前在parent_id列中的实际值.如果其中一个是NULL,则相应的taxon_id<> parent_id_X表达式将“折叠”为NULL,用它拖动整个WHERE表达式.

过滤掉NULL以获得您想要的内容:

select taxon_id 
from taxon_name_element
where taxon_id not in (
    select parent_id
    from taxon_name_element
    where parent_id is not null
)

标签:subtract,php,mysql,database
来源: https://codeday.me/bug/20190726/1539937.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有