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

如何修改SQL查询,基于Subject模型常量获取学生全部科目数据?

解决思路与修改方案

问题根源

原查询中的WHERE sub.[name] = Subject.ENGLISH是精准过滤条件,只返回科目值等于英语的记录,因此只能获取到ENGLISH科目数据。

修改方案

方案1:获取学生所有关联科目数据

直接移除WHERE子句,让INNER JOIN返回每个学生对应的所有科目记录:

SELECT s.name, s.school, s.grade, sub.[name] as sub_name
FROM student s
INNER JOIN subject sub ON s.id = sub.student_id;

方案2:仅获取指定的5类科目数据

如果需要严格限定为Subject类中定义的ENGLISH、MATHS、CHEMISTRY、ART、MUSIC这五个科目,使用IN子句匹配多个目标值:

SELECT s.name, s.school, s.grade, sub.[name] as sub_name
FROM student s
INNER JOIN subject sub ON s.id = sub.student_id
WHERE sub.[name] IN (Subject.ENGLISH, Subject.MATHS, Subject.CHEMISTRY, Subject.ART, Subject.MUSIC);

思路说明

  • 移除WHERE条件:解除单一科目的过滤限制,让关联查询返回所有学生-科目的对应记录。
  • 使用IN子句:在需要限定科目范围时,一次性匹配多个目标常量值,确保结果仅包含指定的五类科目数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:47:11