首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要查找缺少的值,SQL视图应该很简单

要查找缺少的值,SQL视图应该很简单
EN

Stack Overflow用户
提问于 2013-10-21 18:53:02
回答 4查看 128关注 0票数 0

我有两个带有普通id的表,table1有一个任务编号列,table2有documents列,每个任务都可以有多个文档。我正在寻找没有特定文档的所有任务号

假数据:

代码语言:javascript
复制
SELECT * FROM table1
id  tasknumber
1   3210-012
2   3210-022
3   3210-032

SELECT * FROM table2
id  document
1   revision1
1   SB
1   Ref
2   revision1
2   Ref
3   revision1
3   SB

但是,我怎样才能找到没有文件名为SB的任务号呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-21 18:55:23

代码语言:javascript
复制
SELECT t1.tasknumber
FROM   table1 t1
LEFT   JOIN table2 t2 ON t2.id = t1.id AND t2.document = 'SB'
WHERE  t2.id IS NULL;

基本上有四种技术:

票数 3
EN

Stack Overflow用户

发布于 2013-10-21 18:55:35

代码语言:javascript
复制
select t1.tasknumber from table1 t1
where not exists 
     (select 1 from table2 t2 where t1.id = t2.id and t2.document = 'SB')
票数 1
EN

Stack Overflow用户

发布于 2013-10-21 18:56:29

代码语言:javascript
复制
select
    tasknumber
from 
    table1
where
    not exists (select 1
                  from table2
                 where table1.id = table2.id
                       and table2.document = 'SB');

代码语言:javascript
复制
select
    tasknumber
from 
    table1
where
    id not in (select id
                 from table2 
                where document = 'SB');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19502383

复制
相关文章

相似问题

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