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つのアカデミックプログラムの修士号と学部生がいる場合、すべての学生を取得しますが、アカデミックプログラム名の列として、最初の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の学生のみのアカデミックプログラムの名前が表示されます(プログラムが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 に答える