表格:Mark M [Id,Subject,Mark]
测试学生ID:100、101
要求:我们需要两个主题为“数学”的学生的成绩。 条件:学生(101)缺席数学考试。这样在Mark表中就不会有任何学生101的记录。
预期结果:
Student ID Subject Mark
100 Maths 45
101 Maths 0
即我们需要为学生101添加另一行,其中Subject = Maths和Mark = 0。
预先感谢
答案 0 :(得分:0)
您可以尝试使用左联接
select * from students a left join marks b
on a.studentid=b.studentid
答案 1 :(得分:0)
您可以使用左联接
select s.*, m.*
from student s
left join Mark m on m.Id = s.id
如果值不匹配,还左连接检索行
答案 2 :(得分:0)
假设您有多个学科,并且只对数学感兴趣,那么您在过滤时需要小心:
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';