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

如何使用SQL从两张关联表中查询得到所需的目标结果

SQL查询实现方案

实现逻辑

普通JOIN无法输出预期结果的核心原因是:成绩表Table2中不存在Rakesh对应Math科目的行,直接关联会丢失该科目记录。正确逻辑是先以全量科目为基准,关联指定学生的成绩数据,空缺成绩填充为0即可。

可用查询代码

SELECT
    t1.SubjectName AS Subject,
    'Rakesh' AS StudentName,
    COALESCE(t2.Marks, 0) AS Marks
FROM Table1 t1
LEFT JOIN Table2 t2
    ON t1.SubjectId = t2.SubjectId
    AND t2.StudentName = 'Rakesh'
ORDER BY t1.SubjectId;

代码说明

  • 以科目表Table1为查询基础,保证所有科目都出现在结果中
  • LEFT JOIN关联条件额外限定学生为Rakesh,只会匹配该学生的成绩记录,其他学生的成绩数据不会干扰结果
  • COALESCE函数用于将左连接产生的空成绩值替换为0,满足缺考记0的要求。如果使用MySQL数据库,也可以替换为IFNULL(t2.Marks, 0),效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:12:00