Heim >Datenbank >MySQL-Tutorial >Wie kann man drei Tabellen in SQL effizient verknüpfen, um die bevorzugten Hallennamen für Bewerber abzurufen?

Wie kann man drei Tabellen in SQL effizient verknüpfen, um die bevorzugten Hallennamen für Bewerber abzurufen?

DDD
DDDOriginal
2025-01-15 22:22:48408Durchsuche

How to Efficiently Join Three Tables in SQL to Retrieve Preferred Hall Names for Applicants?

SQL-Abfrage zum Abrufen der bevorzugten Hallennamen des Bewerbers

Diese Anleitung zeigt, wie Sie drei SQL-Tabellen verknüpfen, um die bevorzugten Hallennamen der Bewerber anzuzeigen. Wir gehen davon aus, dass Sie über eine Studententabelle, eine Tabelle mit den Hallenpräferenzen und eine Tabelle mit den Hallennamen verfügen.

Die erste Abfrage verknüpft die Studenten- und Präferenztabellen korrekt, um bevorzugte Hallen-IDs zu erhalten. Um die entsprechenden Hallennamen abzurufen, benötigen wir einen zusätzlichen Join mit der Hallennamentabelle.

Hier ist die verbesserte Abfrage:

<code class="language-sql">SELECT
  s.StudentID,
  s.FName,
  s.LName,
  s.Gender,
  s.BirthDate,
  s.Email,
  r.HallPref1,
  h.HallName AS HallName
FROM
  dbo.StudentSignUp AS s
INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r
  ON s.StudentID = r.StudentID
INNER JOIN HallData.dbo.Halls AS h
  ON r.HallPref1 = h.HallID</code>

Dadurch werden die Studentendaten zusammen mit ihrer bevorzugten Hallen-ID und dem entsprechenden Hallennamen zurückgegeben.

Um alle drei bevorzugten Hallennamen abzurufen, verwenden Sie mehrere Joins:

<code class="language-sql">SELECT
  s.StudentID,
  s.FName,
  s.LName,
  s.Gender,
  s.BirthDate,
  s.Email,
  r.HallPref1,
  h1.HallName AS HallName1,
  r.HallPref2,
  h2.HallName AS HallName2,
  r.HallPref3,
  h3.HallName AS HallName3
FROM
  dbo.StudentSignUp AS s
INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r
  ON s.StudentID = r.StudentID
INNER JOIN HallData.dbo.Halls AS h1
  ON r.HallPref1 = h1.HallID
INNER JOIN HallData.dbo.Halls AS h2
  ON r.HallPref2 = h2.HallID
INNER JOIN HallData.dbo.Halls AS h3
  ON r.HallPref3 = h3.HallID</code>

Diese Abfrage liefert die Informationen des Studenten und alle drei bevorzugten Hallennamen.

Das obige ist der detaillierte Inhalt vonWie kann man drei Tabellen in SQL effizient verknüpfen, um die bevorzugten Hallennamen für Bewerber abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn