You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL语句报错求助:查询符合指定条件且不在另一表中的记录

修正你的SQL语句并实现需求

嗨,我注意到你这条SQL执行失败了,问题出在一个简单的语法错误上——你连续写了两个WHERE关键字,这会让数据库解析器直接报错哦!结合你的需求,我帮你修正并优化了语句:

基础修正版SQL(匹配你的原始逻辑)

SELECT * 
FROM homework 
WHERE crn = 138628 
  AND id NOT IN (SELECT id FROM studentHw WHERE codigoAlumno = "214521671");

这里只去掉了重复的WHERE,保留了你原本的查询逻辑:先筛选出studentHw表中对应学生的作业ID,再从homework表中找出CRN为138628且不在这个ID列表里的作业数据。

更稳定的替代写法(避免NOT IN的潜在坑)

如果studentHw表的id字段可能存在NULL值,NOT IN会导致结果不符合预期(因为NULL的比较逻辑特殊),这时候用LEFT JOIN的写法更可靠:

SELECT h.*
FROM homework h
LEFT JOIN studentHw sh 
  ON h.id = sh.id 
  AND sh.codigoAlumno = "214521671"
WHERE h.crn = 138628
  AND sh.id IS NULL;

这个逻辑是:把homework和目标学生的studentHw记录按作业ID关联,最后筛选出那些没有匹配到学生提交记录的作业,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Jorge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:15:07