首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NOT IN not work in my query

NOT IN not work in my query
EN

Stack Overflow用户
提问于 2013-02-19 16:32:19
回答 4查看 43关注 0票数 1

我有两个表datapage,在data表中我有一些记录,一些data记录id将存储在page表中。

现在我想选择idtitle表单data表,这不在page表上。所以我写了这个查询:

代码语言:javascript
复制
SELECT d.id,d.title
FROM data AS d, page AS p
WHERE d.id NOT IN (p.data_id)
ORDER BY d.title ASC

此查询将起作用,但当page表为空时,此查询无法恢复记录!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-19 16:33:34

使用LEFT JOIN

代码语言:javascript
复制
SELECT  a.*
FROM    data a
        LEFT JOIN page b
            ON a.ID = b.data_id
WHERE   b.data_id IS NULL
ORDER   BY a.title ASC

  • SQLFiddle Demo
  • SQLFiddle Demo ()
票数 2
EN

Stack Overflow用户

发布于 2013-02-19 16:36:44

下面是它使用子查询,但没有连接的情况:

代码语言:javascript
复制
SELECT id, title
FROM data
WHERE id NOT IN (SELECT data_id FROM page)
ORDER BY title ASC
票数 2
EN

Stack Overflow用户

发布于 2013-02-19 17:22:12

NOT IN将为您提供所需的内容,但取决于您的数据库系统(和索引的类型),这不是最好(最快)的解决方案。更常见的情况是,不存在会更快。但您的里程可能会有所不同。

试一试:

代码语言:javascript
复制
SELECT id, title FROM data
WHERE NOT EXISTS (SELECT * FROM page WHERE page.data_id = data.id)
ORDER BY title ASC
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14953010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档