ホームページ >データベース >mysql チュートリアル >SQL で 3 つのテーブルを効率的に結合して、応募者が希望するホール名を取得する方法

SQL で 3 つのテーブルを効率的に結合して、応募者が希望するホール名を取得する方法

DDD
DDDオリジナル
2025-01-15 22:22:48408ブラウズ

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

申請者の希望のホール名を取得する SQL クエリ

このガイドでは、3 つの SQL テーブルを結合して、申請者の希望するホール名を表示する方法を説明します。 学生テーブル、ホール優先テーブル、ホール名テーブルがあると仮定します。

最初のクエリは、学生テーブルと優先テーブルを正しくリンクして、優先ホール ID を取得します。 対応するホール名を取得するには、ホール名テーブルとの追加の結合が必要です。

改善されたクエリは次のとおりです:

<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>

これにより、学生の詳細情報と、希望するホール ID および対応するホール名が返されます。

3 つの優先ホール名をすべて取得するには、複数の結合を使用します。

<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>

このクエリは、学生の情報と 3 つの優先ホール名すべてを提供します。

以上がSQL で 3 つのテーブルを効率的に結合して、応募者が希望するホール名を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。