SQL 查询 - 不存在 不工作

Posted

技术标签:

【中文标题】SQL 查询 - 不存在 不工作【英文标题】:SQL Query- NOT exists Not working 【发布时间】:2018-02-24 17:54:17 【问题描述】:
select *
from text_mining
where  NOT EXISTS (select 1 from history
                  where text_mining.Noun = history.Noun
                    and text_mining.Adjective = history.Adjective)

谁能告诉我这是我的错误,谢谢

无法识别的关键字。 (靠近位置 35 的“NOT”) 无法识别的关键字。 (在位置 39 的“EXISTS”附近) 意外的标记。 (在位置 46 的“(”附近)

【问题讨论】:

如果我使用 Exists 它可以工作,但是当我不添加时,它不会 请标记您的 RDBMS 和版本 10.1.16-MariaDB,我正在使用 Xampp,phpMyadmin @McNets 您的查询应该有效。我猜你在NOT 周围有一个隐形字符。 我可以在没有NOT的情况下运行它,从text_mining a where EXISTS中选择*(从历史b中选择1,其中a.Noun = b.Noun and a.Adjective = b.Adjective)跨度> 【参考方案1】:

位置 35 表示关键字 'NOT' 和 ÉXISTS' 之间的空格;您的查询应该有效,尝试删除位置 35 的隐藏字符;

【讨论】:

【参考方案2】:
SELECT  t.*
    FROM  text_mining AS t
    LEFT JOIN  history AS h USING(Nown, Adjective)
    WHERE  h.id IS NULL

history 应该有 INDEX(Noun, Adjective) 在任一顺序。

【讨论】:

【参考方案3】:
SELECT * FROM history a
WHERE !EXISTS
(SELECT 1 FROM text_mining b 
WHERE a.Noun = b.Noun AND a.Adjective = b.Adjective)

使用!EXISTS 而不是NOT EXISTS

【讨论】:

以上是关于SQL 查询 - 不存在 不工作的主要内容,如果未能解决你的问题,请参考以下文章

SQL 查询存在且不存在

sql 不存在查询

使用 sqitch 中的 mysql 查询验证表不存在

不存在与不存在[重复]

即使 sql developer 中不存在数据,也返回给定员工的行

sql不存在和子查询