gpt4 book ai didi

mysql - 带 IN 的嵌套 SELECT

转载 作者:行者123 更新时间:2023-11-29 12:54:51 24 4
gpt4 key购买 nike

我正在使用 Mysql 并尝试将数据从一个数据库迁移到另一个数据库。我之前没有从事过数据库工作。

此查询为我提供了近 300 个结果

select distinct internal_id from ratingsapp.hotel03

但是这个没有返回结果,也没有错误:

select restname from City.resturant where restid not in 
(select distinct internal_id from ratingsapp.hotel03)

现在,如果我从 hotel03 表中手动选择一些internal_ids,并将其放在嵌套查询的位置,查询将返回正确的结果。我不确定我到底做错了什么。

最佳答案

当其中一个值为 NULL 时,通常会发生这种情况。所以这可能有效:

select restname
from City.resturant
where restid not in (select distinct internal_id from ratingsapp.hotel03 where internal_id is not null);

编写此查询的另一种方法是使用 notists:

select restname
from City.resturant r
where not exists (select 1
from ratingsapp.hotel03 h
where h.internal_id = r.restid
);

按照这种方式,NULL 会被正确处理,而无需直接检查它。这就是为什么 NOT EXISTS 优于 NOT IN 的原因之一。

关于mysql - 带 IN 的嵌套 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24230360/

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