Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Inner JOIN Tiga Jadual dalam SQL dengan Cekap untuk Mendapatkan Maklumat Pelajar dan Nama Dewan?

Bagaimana untuk Inner JOIN Tiga Jadual dalam SQL dengan Cekap untuk Mendapatkan Maklumat Pelajar dan Nama Dewan?

Patricia Arquette
Patricia Arquetteasal
2025-01-15 22:23:43244semak imbas

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

SQL: Menggabungkan Data daripada Berbilang Jadual dengan INNER JOIN

SQL's INNER JOIN ialah alat yang berkuasa untuk menggabungkan maklumat daripada jadual berbeza berdasarkan nilai yang dikongsi. Ini amat berguna apabila berurusan dengan set data berkaitan, seperti yang ditunjukkan dalam contoh ini yang melibatkan maklumat pelajar, pilihan dewan dan nama dewan.

Bayangkan tiga jadual: satu meja memegang butiran pelajar, satu lagi dengan pilihan dewan pelajar (diwakili sebagai ID), dan satu lagi dengan nama dewan yang sepadan dengan ID tersebut. Untuk memaparkan maklumat pelajar bersama nama dewan sebenar, kami akan menggunakan INNER JOIN.

Berikut ialah cara untuk cekap INNER JOIN ketiga-tiga jadual ini:

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

Pertanyaan ini berfungsi seperti berikut:

  1. Yang pertama INNER JOIN menghubungkan StudentSignUp dan Incoming_Applications_Current menggunakan StudentID sebagai kunci biasa.
  2. INNER JOIN kedua memautkan Incoming_Applications_Current dan Halls menggunakan HallPref1 (daripada jadual pilihan) dan HallID (daripada jadual dewan).

Hasilnya akan memaparkan maklumat pelajar bersama-sama dengan pilihan dewan pertama mereka dan nama yang sepadan, contohnya:

<code>John Doe | 923423 | Incoming Student | Foley Hall</code>

Memperluaskan Pertanyaan untuk Pelbagai Pilihan Dewan:

Untuk mendapatkan semula ketiga-tiga pilihan dewan dan nama mereka, kami boleh melanjutkan pertanyaan dengan tambahan INNER JOINs:

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

Pertanyaan dipertingkat ini menyertai jadual Halls tiga kali, sekali untuk setiap lajur keutamaan, memberikan pandangan lengkap tentang pilihan dewan pelajar dan nama berkaitannya.

Atas ialah kandungan terperinci Bagaimana untuk Inner JOIN Tiga Jadual dalam SQL dengan Cekap untuk Mendapatkan Maklumat Pelajar dan Nama Dewan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn