首页 >数据库 >mysql教程 >为什么我的 MySQL'NOT IN”查询失败,如何修复?

为什么我的 MySQL'NOT IN”查询失败,如何修复?

Linda Hamilton
Linda Hamilton原创
2025-01-13 14:12:43121浏览

Why is My MySQL

排除 MySQL“NOT IN”查询错误

用户最近在尝试看似简单的 MySQL 查询时遇到语法错误。 目标是从 Table1 中选择 principal 列值不存在于 Table2 中的所有行。 最初的错误查询是:

<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal</code>

这会产生一个错误,导致用户根据相互冲突的在线建议相信 MySQL 可能不支持 NOT IN 子句。 一些消息来源提出了复杂的解决方法。

然而,MySQL 确实支持NOT IN,但上面使用的语法有缺陷。正确的语法需要子查询:

<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)</code>

此修订后的查询使用子查询 (SELECT principal FROM Table2) 来显式定义 principal 中的 Table2 值集。 然后,MySQL 会正确地将每个 Table1.principal 值与该集合进行比较,仅返回 找到匹配项的行。

最初的错误完全源于 NOT IN 运算符的错误应用。 子查询的包含为数据库提供了成功执行查询并产生预期结果所需的结构。

以上是为什么我的 MySQL'NOT IN”查询失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn