首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示学生的姓名和数学成绩(即使他们没有分数)

显示学生的姓名和数学成绩(即使他们没有分数)
EN

Stack Overflow用户
提问于 2021-06-03 19:35:57
回答 2查看 50关注 0票数 0

学生表: id,姓名,班级成绩表: student_id,成绩,我尝试的学科:

代码语言:javascript
复制
CREATE TABLE STUDENT(
  ID int NOT NULL auto_increment PRIMARY KEY,
  Name varchar(225),
  Class varchar(225)
  );

  CREATE TABLE SCORES(
  student_id int,
  FOREIGN KEY (student_id) REFERENCES STUDENT(ID) ON DELETE CASCADE ON UPDATE CASCADE,
  Score int,
  Discipline varchar(225)
  );

Select distinct st.name   ,
                case when sc.discipline='Mathematics' then sc.score
                     else 'NO SCORE'
                end as Mathematics_score
from STUDENT st left join SCORES sc on st.id=sc.student_id   ;

结果:

代码语言:javascript
复制
name               Mathematics_score
Liam                   NO SCORE
ANIA                   NO SCORE
ALEX                   NO SCORE
MAX                       7
MAX                    NO SCORE
ANIA                      9
ABC                    NO SCORE

我需要改变的是,如果他们有数学成绩,我只显示一个名字一次。例如,MAX有数学和生物的等级,他在桌子上出现了两次谢谢,对不起,我的英语!

EN

Stack Overflow用户

回答已采纳

发布于 2021-06-03 20:07:10

试试这个:

代码语言:javascript
复制
Select distinct st.name, Coalesce(sc.score,"No Score") as Mathematics_score
from STUDENT st left join SCORES sc 
    on st.id=sc.student_id and  
        sc.discipline='Mathematics'

连接将为每个学生恰好返回一行,要么是student Name| Score,要么是Student Name | NULL。Coalesce然后将NULL替换为“No Score”

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67820732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档