gpt4 book ai didi

mysql - 为什么这两个查询给出不同的结果?

转载 作者:行者123 更新时间:2023-11-29 13:33:49 26 4
gpt4 key购买 nike

第一个查询:

select count(*) from partner_goods_category p1 where p1.partner_id = 180 and not exists 
(select 1 from partner_goods_category p2 where
#p1.partner_id = 180 and
#p2.partner_id = 180 and
p1.partner_id = p2.partner_id and
p2.parent_category_id = p1.category_id);

#1067

第二个查询:

select count(*) from partner_goods_category p1 where not exists 
(select 1 from partner_goods_category p2 where
#p1.partner_id = 180 and
p2.partner_id = 180 and
p1.partner_id = p2.partner_id and
p2.parent_category_id = p1.category_id);


#1956

第二个似乎给出了错误的结果。这是为什么?这两个查询之间有什么区别?因为它们在逻辑上对我来说看起来是相同的(可能它们的工作方式有点不同,但它们应该产生相同的结果)。数据库是MySQL 5.5。

最佳答案

第一个查询有“where p1.partner_id = 180”附加 where 子句。因此,第二个检查每条记录,但第一个仅检查partner_id等于180的情况。

关于mysql - 为什么这两个查询给出不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com