ホームページ > データベース > mysql チュートリアル > SQL で 3 つのテーブルを効率的に INNER JOIN して学生情報とホール名を取得する方法

SQL で 3 つのテーブルを効率的に INNER JOIN して学生情報とホール名を取得する方法

Patricia Arquette
リリース: 2025-01-15 22:23:43
オリジナル
289 人が閲覧しました

How to Efficiently INNER JOIN Three Tables in SQL to Retrieve Student Information and Hall Names?

SQL: INNER JOIN を使用して複数のテーブルのデータを結合する

SQL の INNER JOIN は、共有値に基づいてさまざまなテーブルの情報を結合するための強力なツールです。 これは、学生情報、ホールの好み、ホール名を含むこの例で示されているように、関連するデータセットを扱うときに特に役立ちます。

3 つのテーブルを想像してください。1 つは学生の詳細を保持し、もう 1 つは学生ホールの好み (ID として表されます) を保持し、3 番目のテーブルはそれらの ID に対応するホール名を保持します。実際のホール名と並んで学生情報を表示するには、INNER JOIN を使用します。

これら 3 つのテーブルを効率的に INNER JOIN 実行する方法は次のとおりです:

<code class="language-sql">SELECT 
    s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, 
    r.HallPref1, r.HallPref2, r.HallPref3, 
    h.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>
ログイン後にコピー

このクエリは次のように機能します:

  1. 最初の INNER JOIN は、StudentSignUp を共通キーとして使用して Incoming_Applications_CurrentStudentID を接続します。
  2. 2 番目の INNER JOIN は、Incoming_Applications_Current (プリファレンス テーブルから) と Halls (ホール テーブルから) を使用して HallPref1HallID をリンクします。

結果には、生徒の情報と、最初のホール希望およびそれに対応する名前が表示されます。例:

<code>John Doe | 923423 | Incoming Student | Foley Hall</code>
ログイン後にコピー

複数のホール設定のクエリの拡張:

3 つのホール設定とその名前をすべて取得するには、追加の INNER JOIN を使用してクエリを拡張します。

<code class="language-sql">SELECT 
    s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, 
    r.HallPref1, h1.HallName AS Pref1HallName, 
    r.HallPref2, h2.HallName AS Pref2HallName, 
    r.HallPref3, h3.HallName AS Pref3HallName
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>
ログイン後にコピー

この強化されたクエリは、Halls テーブルを 3 回 (プリファレンス列ごとに 1 回ずつ) 結合し、学生ホールのプリファレンスとそれに関連付けられた名前の完全なビューを提供します。

以上がSQL で 3 つのテーブルを効率的に INNER JOIN して学生情報とホール名を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート