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

求查询未支付指定月份费用的学生详情的SQL语句

查询未缴纳指定月份费用的学生信息

以下是几种实用的实现方案,可根据你的实际场景选择:

方法1:LEFT JOIN + IS NULL

通过左连接匹配学生与对应月份的缴费记录,筛选无有效缴费记录的学生:

SELECT sd.*
FROM studentdetails sd
LEFT JOIN payment p 
    ON sd.sid = p.sid 
    AND p.month IN ('september', 'october')
WHERE p.sid IS NULL;

方法2:NOT EXISTS

通过子查询校验是否存在指定月份的缴费记录,不存在则返回学生信息:

SELECT sd.*
FROM studentdetails sd
WHERE NOT EXISTS (
    SELECT 1
    FROM payment p
    WHERE p.sid = sd.sid
    AND p.month IN ('september', 'october')
);

推荐:基于日期字段的筛选版本

如果paymentdate是标准日期类型,建议用日期函数筛选月份,避免字符串month字段的拼写误差:

SELECT sd.*
FROM studentdetails sd
WHERE NOT EXISTS (
    SELECT 1
    FROM payment p
    WHERE p.sid = sd.sid
    AND MONTH(p.paymentdate) IN (9, 10) -- 9代表九月,10代表十月
);

注意事项

  • 确保month字段的字符串值与查询条件完全匹配(示例中Octomber应为October,实际使用时需修正拼写)
  • 若使用NOT IN方案,需注意payment表中sid不能存在NULL值,否则会导致结果异常,因此优先推荐前两种方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:40:27