在SQL中组合数据行和非数据行

在SQL中组合数据行和非数据行,sql,join,Sql,Join,表:马克M[身份证、受试者、马克] 测试学生ID:100101 要求:我们需要“数学”科目的两名学生的分数。 情况:101号学生缺席数学考试。所以101学生的分数表中不会有任何记录 预期结果: Student ID Subject Mark 100 Maths 45 101 Maths 0 也就是说,我们需要为学生101增加一行,主题=数学,分数=0 提前感谢您可以尝试使用left join select * from students a left joi

表:马克M[身份证、受试者、马克]

测试学生ID:100101

要求:我们需要“数学”科目的两名学生的分数。 情况:101号学生缺席数学考试。所以101学生的分数表中不会有任何记录

预期结果:

Student ID Subject Mark
100        Maths   45
101        Maths   0
也就是说,我们需要为学生101增加一行,主题=数学,分数=0


提前感谢

您可以尝试使用left join

select * from students a left join marks b
on a.studentid=b.studentid

你可以用左键连接

 select  s.*, m.*
 from  student s 
 left join Mark  m  on m.Id = s.id

left join retrive行如果值不匹配

假设您有多个科目并且只对数学感兴趣,那么您需要小心筛选:

select s.*, 'Maths' as subject, coalesce(m.mark, 0) as mark
from student s left join
     mark m
     on m.Id = s.id and m.subject = 'Maths';

编辑问题并添加一些示例数据&期望的结果会有所帮助。