You need to enable JavaScript to run this app. 如何编写SQL查询class与account_class表中user1未选择的课程
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询class与account_class表中user1未选择的课程

现有SQL问题排查
  • 用户名匹配错误:你的需求是筛选未被user1选择的课程,但原语句子查询中筛选的用户名为faraazap,和目标用户不符。
  • 缺少表关联条件:原NOT EXISTS的子查询没有和外层class表做关联,判断逻辑是「整张account_class表是否存在用户faraazap的记录」,而不是判断「当前课程是否被目标用户选择」,完全不符合业务逻辑。
正确实现方案

方案1:修正NOT EXISTS写法

补全关联条件、修正匹配用户名即可:

SELECT class.* 
FROM class 
WHERE NOT EXISTS (
    SELECT * 
    FROM account_class 
    WHERE account_class.username_account = 'user1' 
      AND account_class.id_class = class.id
);

方案2:LEFT JOIN实现

也可以用左连接的方式实现,逻辑更直观:

SELECT class.*
FROM class
LEFT JOIN account_class 
  ON class.id = account_class.id_class 
  AND account_class.username_account = 'user1'
WHERE account_class.id IS NULL;

两种方案执行后都会返回你预期的id为3、4的两条未选课记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 06:00:05