首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么`NOT IN` cte不起作用,但`NOT IN`子查询起作用?

NOT IN是一种用于查询的SQL语句,用于在一个查询中排除满足特定条件的结果。在这个问题中,NOT IN被用于一个CTE(公共表表达式)和一个子查询中。

首先,让我们了解一下CTE和子查询的概念:

  • CTE(公共表表达式)是一种临时命名的查询结果集,它可以在一个查询中被引用多次。CTE通常用于提高查询的可读性和可维护性。
  • 子查询是一个嵌套在主查询中的查询语句,它可以返回一个结果集,该结果集可以被主查询使用。

现在我们来解释为什么NOT IN在CTE中不起作用,但在子查询中起作用:

  1. CTE中的NOT IN:当在CTE中使用NOT IN时,CTE的结果集会在查询执行之前被计算出来,并且在整个查询过程中被视为一个临时表。由于CTE是一个临时表,它的结果集在查询执行期间是固定的,不会随着主查询的执行而改变。因此,如果CTE的结果集中包含了NOT IN条件中的值,那么这些值将被排除在查询结果之外。但是,如果CTE的结果集中没有包含NOT IN条件中的值,那么NOT IN条件将不起作用,因为CTE的结果集是固定的。
  2. 子查询中的NOT IN:与CTE不同,子查询是在主查询执行期间动态计算的。当在子查询中使用NOT IN时,子查询的结果集会根据主查询的执行情况而改变。因此,如果子查询的结果集中包含了NOT IN条件中的值,那么这些值将被排除在查询结果之外。如果子查询的结果集中没有包含NOT IN条件中的值,那么NOT IN条件将起作用,因为子查询的结果集是动态计算的。

综上所述,NOT IN在CTE中不起作用是因为CTE的结果集是固定的,而在子查询中起作用是因为子查询的结果集是动态计算的。

如果你想在CTE中使用类似于NOT IN的条件,你可以考虑使用其他的查询语句,如LEFT JOINNOT EXISTS来实现相同的效果。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送):https://cloud.tencent.com/product/umeng
  • 腾讯云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么我的样式不起作用

还有一个Child的组件,红底黑字。 那么实际渲染出的样式是什么样子的呢。如下图: ? 实际看到的效果确实蓝底白字与红底白字,为什么与写的代码有出入呢。...究其原因 为什么子组件的字体颜色不是黑色确是白色? ?...打开调试工具,看到组件被渲染成一个Child 但是样式却被父组件的样式给覆盖变成了白色, 原因:这是因为在w3c 规范中,CSS 始终是「全局的...因为全局性,明明定义了样式,就是不生效,原因可能是被其他样式定义所强制覆盖。 为什么同样.parent .component 和.child .component是父级覆盖子级? ?...最后 文章首发于:为什么我的样式不起作用? 参考:浏览器渲染原理与过程 参考:CSS选择器从右向左的匹配规则 DEMO地址

4.2K20

为什么 strace 在 Docker 中不起作用

protected]:/# strace ls strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted strace 通过 ptrace 系统调用起作用...为什么 strace 不能工作,为什么--cap-add=SYS_PTRACE 可以解决这个问题? 假设 1:容器进程缺少 CAP_SYS_PTRACE 能力。...这实际上是不合理的,原因有两个。 原因 1:在实验中,作为一个普通用户,我可以对我的用户运行的任何进程进行 strace。...得出的结果是一样的。) 这很容易解释为什么 strace 在 Docker 容器中不能工作 —— 如果 ptrace 系统调用完全被屏蔽了,那么你当然不能调用它,strace 就会失败。...为什么 --cap-add=SYS_PTRACE 能解决问题? 我们还没有解释的是:为什么 --cap-add=SYS_PTRACE 可以解决这个问题?

6.4K30
  • 解决MybatisPlus插件分页查询不起作用,总是查询全部数据问题

    问题描述: 在使用mybatisplus插件进行分页查询时分页参数不起作用,总是查出来全部数据。 原因分析: 查看打印的sql日志发现sql后面并没有limit条件,怀疑是缺少配置。...PaginationInterceptor,MP提供的分页方法是无效的,例如使用mysql,配置了PaginationInterceptor,调用MP提供的分页方法,假设使用selectPage方法,他会执行两条sql语句,一条查询总记录数的...sql,一条查询当前页记录的sql是带limit分页条件的。...如果不配置,调用selectPage只会执行一条查询记录的sql,并且不带limit,有兴趣你可以试试,很容易就能验证出来的。...mybatis-plus 分页数据量大时,查询速度慢,使用page.setOptimizeCount(true);优化

    4.1K10

    为什么我的模型准确率都 90% 了,却不起作用

    问题是,这 20% 的用户流失可能对公司非常的重要。...实际上你一个客户流失都没有预测到。假如分类再极端一点,90 比 10 的客户留存,我们还是预测没有任何客户流失,那么我们将拥有一个 90% 精度的模型,但却一个流失案例都没有预测到。...因此,如果我们成功预测到了所有的二万用户流失,也就是两万的真正,同时也有两万并没有流失的客户被模型混淆在了其中,那么这一点在精准度里也会有所体现: 没有假正:20,000/(20,000+0)= 100%...还是用之前的例子,如果我们成功预测出所有的流失客户,没有错过任何一个,那么我们将拥有: 没有假负:20,000/(20,000+0)= 100% 如果我们错估了五千的客户,那么召回率将下降,计算式的分母不变...如果说我们在 2 万个目标样本中成功识别了 1.5 万,其中有五千是错判为正的负,并且漏掉了五千个正样本,那么你的 F1 应该如下: F1: 15,000 / (15,000+.5 (5,000+5,000

    1.9K30

    为什么你的自定义View wrap_content不起作用

    前言 自定义View是Android开发中非常常用的知识 可是,在使用过程中,有些开发者会发现:为什么自定义View 中设置的wrap_content属性不起作用(与match_parent相同作用...解决了问题2:wrap_content起到与match_parent相同的作用 那么有人会问:wrap_content和match_parent具有相同的效果,为什么是填充父容器的效果呢?...所以,这个问题的关键在于View MeasureSpec的specSize的值是多少 我们知道,View的MeasureSpec值是根据View的布局参数(LayoutParams)和父容器的MeasureSpec...决定自己的大小,最大不能超过父view,模式为AT_MOST resultSize = size; resultMode = MeasureSpec.AT_MOST...总结 本文对自定义View中 wrap_content属性不起作用进行了详细分析和给出了解决方案 接下来,我我将继续对自定义View的应用进行分析,有兴趣的可以继续关注Carson_Ho的安卓开发笔记

    2.3K30

    为什么你的RAG不起作用?失败的主要原因和解决方案

    为什么选用RAG?...也有其他衡量语义相似性的方法,通常这不是问题的关键所在,我们将在文章中使用余弦相似性。...使用余弦相似性进行语义搜索倾向于在方向上是正确的,本质上是模糊的。它可以很好地估计前20个结果,通常只靠它来可靠地排名最佳答案是有很多要求的。...而专业人士理解的策略3因该更好,因为它将所有内容混合在一起,表现不如策略4。 噪声(随机,无关文本):余弦相似性在0.04–0.23之间。...因为余弦相似性很适合做初步评估,最终无法进行更高精度的排名。 如果你的业务可能拥有更多的信息来帮助AI做出更好的决策,例如:收集了诸如页面浏览和点赞等指标,可能按人物特征拥有这些指标。

    23410

    查询网站所有的域名的方法 为什么查询

    image.png 如何进行域名查询 查询网站所有的域名听起来有点复杂,其实并不是特别难的事情,因为现如今已经有一些网站和工具可以提供此项服务了。...有的公司在一些域名平台上注册的,通常这些平台也可以提供查询服务,域名越多,所需要的时间也会相应增加,不过并非所有的域名都可以查出来,所以要根据自己的需要选择工具。...域名查询的原因 域名也是整个域名系统中的一部分,也可以说是二级域名三级域名,一些业务比较多的企业可能会用到很多子域名,这样才能够便于管理网站的各种功能。...查询网站所有的域名是有必要的,原因首先是域名的数量如果是多个,那么很可能会存在漏洞,无法保障安全,所以搜集子域名的信息就需要被重视了。...再者如果想要得知注册者、注册和到期的日期等信息,也可以通过查询获得。 以上就是关于查询网站所有的域名的相关介绍,可见查询的途径绝非一种,但是否好用就见仁见智了,适合自己的才是最好的方式。

    6.2K20

    为什么MySQL不推荐使用查询和join

    来源:cnblogs.com/liboware/p/12740901.html 1.对于mysql,不推荐使用查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据...2.查询就更别用了,效率太差,执行查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。...查询id集的时候,使用IN()代替关联查询,可以让MySQL按照ID顺序进行查询,这可能比随机的关联要更高效。 可以减少冗余记录的查询。...四、不使用join的解决方案 在业务层,单表查询出数据后,作为条件给下一个单表查询。也就是查询。会担心子查询出来的结果集太多。mysql对in的数量没有限制,但是mysql限制整条sql语句的大小。...建议在业务上做好处理,限制一次查询出来的结果集是能接受的。 五、join查询的优势 关联查询的好处是可以做分页,可以用副表的字段做查询条件,在查询的时候,将副表匹配到的字段作为结果集,用主表去in它。

    4.1K30

    SQL中order by的高级用法

    导读 为什么只有ORDER BY后面可以使用列别名 为什么不推荐使用ORDER BY后接数字来排序 为什么视图和查询里面不能使用ORDER BY …… 小伙伴们在进行SQL排序时,都能很自然的使用到...四、表表达式不能使用ORDER BY排序 表表达式包括视图,内联表值函数,派生表(查询)和公用表表达式(CTE)。...这里我猜测是因为视图,内联表值函数,派生表(查询)和公用表表达式(CTE)等返回的结果还需要进一步的去使用,加了ORDER BY进行排序是多此一举,反而会浪费系统资源。...这又是为什么呢?...这里的ORDER BY只对当前的查询生效,到了主查询不起作用的。必须在主查询末尾继续添加一个ORDER BY子句才能对结果集生效,就像我们例子中写的那样。

    12110

    除了会排序,你对ORDER BY的用法可能一无所知!

    导读 为什么只有ORDER BY后面可以使用列别名 为什么不推荐使用ORDER BY后接数字来排序 为什么视图和查询里面不能使用ORDER BY …… 小伙伴们在进行SQL排序时,都能很自然的使用到...四、表表达式不能使用ORDER BY排序 表表达式包括视图,内联表值函数,派生表(查询)和公用表表达式(CTE)。...这里我猜测是因为视图,内联表值函数,派生表(查询)和公用表表达式(CTE)等返回的结果还需要进一步的去使用,加了ORDER BY进行排序是多此一举,反而会浪费系统资源。...这又是为什么呢?...这里的ORDER BY只对当前的查询生效,到了主查询不起作用的。必须在主查询末尾继续添加一个ORDER BY子句才能对结果集生效,就像我们例子中写的那样。

    2.3K30

    T-SQL基础(三)之子查询与表表达式

    查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询。嵌套在外部查询内的查询称为查询查询的结果集供外部查询使用。 根据是否依赖外部查询,可将查询分为自包含查询和相关子查询。...IN( SELECT TOP 10 C.custid FROM dbo.Customers AS C ORDER BY C.custid ); 上述查询语句看起来可以正常运行,查询的返回结果集中包含...有时候会看到即使外部查询未使用ORDER BY查询结果集按预期顺序返回了结果,这是由于数据库自身优化的结果,依然无法保证每次查询都能按预期结果返回。...,不同于派生表,CTE可以在一次查询中多次使用(但不能嵌套使用而派生表可以): USE WJChi; ​ WITH YearlyCount AS ( SELECT YEAR(...关于是否应该使用视图,仁者见仁,智者见智: 使用SQL Server视图的优缺点 为什么mysql中很少见到使用视图功能?

    1.5K10

    T-SQL基础(三)之子查询与表表达式

    查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询。嵌套在外部查询内的查询称为查询查询的结果集供外部查询使用。 根据是否依赖外部查询,可将查询分为自包含查询和相关子查询。...,查询的返回结果集中包含NULL值时,上述查询语句则不会返回任何数据。...有时候会看到即使外部查询未使用ORDER BY查询结果集按预期顺序返回了结果,这是由于数据库自身优化的结果,依然无法保证每次查询都能按预期结果返回。...,不同于派生表,CTE可以在一次查询中多次使用(但不能嵌套使用而派生表可以): USE WJChi; WITH YearlyCount AS ( SELECT YEAR(orderdate...关于是否应该使用视图,仁者见仁,智者见智: 使用SQL Server视图的优缺点 为什么mysql中很少见到使用视图功能?

    1.6K40

    LLM辅助的从Postgres到SQLite和DuckDB的翻译

    最初它只适用于 Postgres,最近 Powerpipe 获得了将数据从 SQLite 和 DuckDB 传输到其仪表盘的功能。...以下是当前的语言列表,表示为正则表达式,以便 SQL 查询可以进行模糊匹配。...param "names" {} param "min_minutes_ago" {} param "max_minutes_ago" {} } 从 HCL 列表到 SQL 行 第一个 CTE...对于这些名称中的每一个,第二个 CTE 会计算 hn 表中标题与名称匹配且时间戳在所需范围内帖子的数量。 这在 SQLite 或 DuckDB 中均不起作用。两者都不能接受字符串数组作为参数。...两者都渴望编写查询、函数或其他大量代码的完整新版本。这些重写通常会失败,虽然将错误传递回 LLM 有时可以快速解决,该策略可能会变成死亡螺旋——就像在这种情况下一样。

    7510

    学以致用:语言模型在重塑教育中的作用

    为什么? 我将这个问题转发给了我的首席助手 ChatGPT,它给出了以下回答: ChatGPT: 您的 SQL 脚本基本没有问题,但是最后的查询语句中联结表的方式有点问题。...ChatGPT:要显示PersonJobCombos CTE的输出,我们需要仅运行查询的那部分。该CTE生成所有可能的人员和工作组合,而不考虑一个人是否实际上做过工作。...在这些情况下,我会借助CTE管道以一系列简单的步骤构建查询,每个步骤都执行一项简单的转换。 我把规则7放在最后,因为它感觉最重要。...我碰巧知道如何从Python内部使用SQLite,如果我不知道,ChatGPT将会默默地教给我这种方法,并提供另一个有用的示例供我参考。...解释为什么需要 cross join 以及它是如何起作用的。 一些老师现在可能愿意并能够采用这种全新的方法。许多人可能会等到它嵌入在具有保护措施的课程中,以确保学生走上正轨。

    8110

    Vue webpack打包后,css样式发生改变或不起作用

    为什么打包后会出现这样的结果呢!不太理解!...一.css样式发生改变 的scoped属性: 1)加了scoped属性的组件,可以维护当前组件样式不受其它组件影响 2)加了scoped属性的父级组件,不能修改组件元素样式...(无路子组件加没属性scoped,因为scoped只能维护当前组件元素) 3)不加scoped属性的父级组件,可以修改组件样式 4)加了scoped属性的父级组件,也可以强行控制加了scoped属性的组件...,方法是:.a >>> .b或者css预处理中的 .a /deep/ 二.css样式不起作用 原因: 1.使用了webpack2的语法规则不正确; webpack2要求必须写-loader; 2.可能是只写了...css-loader; 没写style-loader则build文件会生成,你会发现页面中js不起作用; 没写css-loader则会直接报错:’You may need an appropriate

    5.1K30
    领券