Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Inner JOIN Tiga Jadual dalam SQL dengan Cekap untuk Mendapatkan Maklumat Pelajar dan Nama Dewan?
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:
INNER JOIN
menghubungkan StudentSignUp
dan Incoming_Applications_Current
menggunakan StudentID
sebagai kunci biasa.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 JOIN
s:
<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!