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

SQL查询问题:score1与score2均为0的比赛未被检索

解决SQL无法查询到两队均未进球比赛的问题

原SQL使用内连接(JOIN)关联game和goal表,这会自动过滤掉所有在goal表中没有对应记录的比赛——也就是两队都没进球的比赛。要显示所有比赛(包括零进球场次),需要做两处核心修改:

  1. 将内连接改为左外连接(LEFT JOIN),确保game表的所有比赛记录都被保留,哪怕goal表中没有对应进球数据
  2. 用COALESCE()函数处理SUM()的结果,把无进球时产生的NULL值转为0,保证进球数字段始终显示合理数值

修改后的SQL语句:

SELECT mdate,
  team1,
  COALESCE(SUM(CASE WHEN teamid=team1 THEN 1 ELSE 0 END), 0) score1,
  team2,
  COALESCE(SUM(CASE WHEN teamid=team2 THEN 1 ELSE 0 END), 0) score2
FROM game LEFT JOIN goal ON matchid = id
GROUP BY mdate, matchid, team1, team2
ORDER BY mdate, matchid, team1, team2

关键逻辑说明

  • LEFT JOIN:以game表为基准,返回所有比赛记录,goal表中无匹配数据时,对应字段会填充为NULL
  • COALESCE():当SUM()计算结果为NULL(即该比赛无任何进球记录)时,自动替换为0,避免出现空值影响结果展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:30:02