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

仅用JOIN实现SQL交集查询:排查数英双授课资质教师查询无结果问题

问题原因

你编写的SQL存在逻辑互斥问题:

  • 你对同一条qualifiedTeacher记录的同一个cID字段,同时关联了两次Class表,要求这个cID对应的课程名同时为Math和English
  • 但Class表中每个cID只会对应唯一的cname,不可能同时满足两个课程名的筛选条件,因此INNER JOIN后没有符合条件的记录,自然返回空结果。

正确写法(仅使用JOIN操作,无子查询)

我们需要对qualifiedTeacher表做自连接,匹配同一个教师pID对应的两条不同资质记录,分别关联Math和English的课程信息即可:

SELECT qt1.pID AS id
FROM qualifiedTeacher qt1
INNER JOIN Class c1 
  ON qt1.cID = c1.cID AND c1.cname = 'Math'
-- 自连接qualifiedTeacher表,匹配同一教师的其他资质记录
INNER JOIN qualifiedTeacher qt2 
  ON qt1.pID = qt2.pID
INNER JOIN Class c2 
  ON qt2.cID = c2.cID AND c2.cname = 'English';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:36:05