首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取与查询不匹配的联接行

获取与查询不匹配的联接行
EN

Stack Overflow用户
提问于 2012-06-19 15:41:40
回答 4查看 62关注 0票数 0

我有一份实习申请,他们可以申请实习。我们有个脚本能自动让实习生有资格。我想找所有没有资格实习的实习生。

数据库如下:

代码语言:javascript
复制
 Intern (Id,...)
 Application (Id, status, intern_id, internship_id,...)
 Internship (Id,...)

对于这个状态,我们有“申请”、“合格”、“当前”和“完成”--基本上我需要为没有“合格”状态的应用程序的实习生做一个连接请求,但是我的sql技能非常基本。

编辑

我忘了说,可以有几个实习生申请,一个实习生只能有一个实习资格,但他仍然可以申请另一个实习,所以这是行不通的

代码语言:javascript
复制
SELECT *
FROM Intern i
INNER JOIN Application a ON i.Id = a.intern_id
WHERE a.status <> 'qualified'
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-19 15:43:52

将状态包含在LEFT JOIN中,并对非匹配状态进行筛选,如下所示:

代码语言:javascript
复制
SELECT  ....
FROM    Intern i
        LEFT JOIN
                Application a
                ON i.Id = a.intern_id
                AND a.status = 'qualified'
WHERE   a.Id IS NULL

显然,替换你的列列表吧!

票数 1
EN

Stack Overflow用户

发布于 2012-06-19 15:43:51

代码语言:javascript
复制
SELECT *
  FROM Intern i
 WHERE NOT EXISTS
    (SELECT *
       FROM Intern j
          , Application a
      WHERE j.id = a.intern_id
        AND i.id = j.id
        AND a.status = 'qualified')
票数 1
EN

Stack Overflow用户

发布于 2012-06-19 15:44:32

代码语言:javascript
复制
SELECT * FROM Intern
WHERE Id IN ( SELECT Intern_id FROM Application WHERE status <> 'qualified' );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11104561

复制
相关文章

相似问题

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