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 查询 - 不存在 不工作的主要内容,如果未能解决你的问题,请参考以下文章