首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用NOT关键字时如何使用内部联接

使用NOT关键字时如何使用内部联接
EN

Stack Overflow用户
提问于 2019-09-06 16:47:53
回答 1查看 29关注 0票数 1

问题是要得到“尚未通过考试的学生”。在sql术语中,ims_admission.exam_status 不是 Active的记录。

我有三张桌子。ims_admission、ims_batch、ims_course

我在每个学生的记录中都存储了一个batch_id,course_id。这些id的是相应表的主键。使用这些id,我想从ims_batch中提取batch_name,从ims_course表中提取course_name,并且where子句是ims_admission.exam_status ='Active‘

我学了一点关于加入的知识。进行了查询,但在使用where子句时无法获得结果。除了我从哪里得到记录

这是我的查询

代码语言:javascript
运行
复制
SELECT ims_admission.enq_applicant,ims_admission.batch_id,ims_admission.enq_course,ims_batch.batch_name 
FROM ims_admission 
INNER JOIN ims_batch ON ims_admission.batch_id = ims_batch.batch_id 
WHERE NOT ims_admission.exam_status = 'Active'

我想得到批处理的名称,当然,其中不包括exam_status ="Active“

EN

回答 1

Stack Overflow用户

发布于 2019-09-06 16:50:13

虽然您可以使用LEFT JOIN来实现这一点,但是我认为使用NOT EXISTS来实现它更自然。

代码语言:javascript
运行
复制
SELECT ia.*
FROM ims_admission ia
WHERE NOT EXISTS (SELECT 1
                  FROM ims_batch ib
                  WHERE ib.batch_id = ia.batch_id AND
                        ib.exam_status = 'Active'
                 );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57825897

复制
相关文章

相似问题

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