Abrufen von data aus verschiedenen Tabellen (SQL server)

Ich habe 4 Tabellen in einer SQL server-database mit folgendem Schema:

  1. Teilnahme

    CREATE TABLE [dbo].[Attendance] ( [AttendanceId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [CourseId] UNIQUEIDENTIFIER NOT NULL, [StudentId] UNIQUEIDENTIFIER NOT NULL, [SubjectId] UNIQUEIDENTIFIER NOT NULL, [Semester] INT NOT NULL, [Month] NVARCHAR (50) NOT NULL, [Count] INT NOT NULL, CONSTRAINT [PK_Attendance] PRIMARY KEY NONCLUSTERED ([AttendanceId] ASC), CONSTRAINT [FK_Attendance_Student] FOREIGN KEY ([StudentId]) REFERENCES [dbo].[Student] ([StudentId]) ); 
  2. Kurs

     CREATE TABLE [dbo].[Course] ( [CourseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [Name] NVARCHAR (50) NOT NULL, CONSTRAINT [PK_Course] PRIMARY KEY NONCLUSTERED ([CourseId] ASC) ); 
  3. Schüler

     CREATE TABLE [dbo].[Student] ( [StudentId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [CourseId] UNIQUEIDENTIFIER NOT NULL, [Name] NVARCHAR (100) NOT NULL, [RollNo] INT NOT NULL, [Semester] INT NOT NULL, CONSTRAINT [PK_Student] PRIMARY KEY NONCLUSTERED ([StudentId] ASC), CONSTRAINT [FK_Student_Course] FOREIGN KEY ([CourseId]) REFERENCES [dbo].[Course] ([CourseId]) ); 
  4. Fach

     CREATE TABLE [dbo].[Subject] ( [SubjectId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [CourseId] UNIQUEIDENTIFIER NOT NULL, [Name] NVARCHAR (100) NOT NULL, [Semester] INT NOT NULL, CONSTRAINT [PK_Subject] PRIMARY KEY NONCLUSTERED ([SubjectId] ASC), CONSTRAINT [FK_Subject_Course] FOREIGN KEY ([CourseId]) REFERENCES [dbo].[Course] ([CourseId]) ); 

Ich muss einen Anwesenheitsbericht in folgendem Format erstellen:

Kursname | Studentenname | Betreff Name | Semester | Monat | Graf

Bitte sagen Sie mir, welche SQL-Query ich verwenden muss und wenn es irgendeine Änderung in Schema erforderlich dann schlagen das gleiche.

Ich freue mich auf Ihre Antworten.

Vielen Dank,

Sie müssen ein JOIN in Ihrer Abfrage verwenden, damit es nur Zeilen zurückgibt, die mit einem [StudentId] aus der Anwesenheitstabelle [StudentId] .

z.B

 SELECT c.CourseName, s.StudentName, u.SubjectName, u.Semester, a.Month, a.Count FROM Student s JOIN Attendance a ON s.StudentId = a.StudentId JOIN Course c ON a.CourseId = c.CourseId JOIN Subject u ON c.CourseId = u.CourseId 

Etwas in dieser Richtung wird nur Zeilen zurückgeben, die speziell übereinstimmen