2

我有 2 个表

create table Students(
SerialNumber int primary key identity,
                    Name varchar(50) not null,
                    Surname varchar(50) not null,
                    AcademicProgram int foreign key references AcademicProgrammes(Id)
                 )
Create table AcademicProgrammes(
                                Id int primary key identity,
                                Name varchar (20) not null
                           )

我想从学生表中获取所有学生,但是 AcademicProgram 引用外键我想要 AcademicProgrammes 的名称。

我的加入看起来像这样:

select Students.SerialNumber,Students.Name, Students.Surname, AcademicProgrammes.Name
from Students left join
AcademicProgrammes on Students.SerialNumber=AcademicProgrammes.Id

如果我有 2 个学术课程硕士和本科,结果我得到所有 ste 学生,但作为学术课程名称列,只有前 2 个学生有 de 学术课程的名称,其余学生有 null

Vasile  Magdalena-Maria Licenta
Ciotmonda   Oana-Maria  Master
Rus Diana   NULL
Turcu   Gabriel NULL

我找不到我做错了什么

谢谢 !

4

1 回答 1

2

我相信你需要加入

Students.AcademicProgram=AcademicProgrammes.Id

代替

Students.SerialNumber=AcademicProgrammes.Id

因此,您只能获得序列号为 1 和 2 的学生的学术课程名称(因为您只有两个课程)。

因此尝试以下

SELECT s.SerialNumber,
       s.Name, 
       s.Surname, 
       a.Name AS Program
  FROM Students s LEFT JOIN
       AcademicProgrammes a ON s.AcademicProgram=a.Id
于 2013-03-01T09:29:35.807 回答