首页 > 解决方案 > SQL 从 2 个表中选择,其中第二个表中的值可能不存在

问题描述

我有 2 张桌子:

  1. 具有列的学生(学生 ID、名字、姓氏)和
  2. 成绩(gradeid、studentid、等级)。

如何选择所有学生,包括那些没有成绩的学生(因此,他们不在成绩表中)。例如:

学生

100   StudentFN1  StudentLN1
101   StudentFN2  StudentLN2
102   StudentFN3  StudentLN3

成绩

1   101   90
2   102   70

所以我希望所有学生都被选中,即使是不在成绩中的学生 102。学生 102 年级应该是空的。

标签: sqlselect

解决方案


您正在寻找外部联接:

select *
from students
left outer join grades on grades.studentid = students.studentid
order by students.studentid;

推荐阅读