Dalam bidang pengurusan pangkalan data, selalunya perlu untuk menggabungkan data daripada berbilang jadual. Senario biasa melibatkan penyertaan tiga atau lebih jadual untuk mendapatkan cerapan komprehensif. Dalam contoh ini, matlamatnya ialah untuk mencipta paparan yang menggabungkan maklumat daripada tiga jadual dengan lancar: StudentSignUp, Incoming_Applications_Current dan Halls.
Pertanyaan awal yang diberikan memfokuskan pada menyertai jadual StudentSignUp dan Incoming_Applications_Current, berjaya mendapatkan maklumat pelajar bersama-sama dengan pilihan asrama mereka. Walau bagaimanapun, keutamaan dewan kediaman diwakili oleh nombor ID dan bukannya nama yang sepadan. Untuk melengkapkan paparan, jadual ketiga, Dewan, perlu digabungkan.
Pertanyaan yang diubah suai boleh digunakan untuk mencapai hasil yang diingini:
<code class="language-sql">SELECT s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, r.HallPref1, h1.HallName AS HallPref1Name, r.HallPref2, h2.HallName AS HallPref2Name, r.HallPref3, h3.HallName AS HallPref3Name 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 yang diubah suai ini memperkenalkan tiga JOIN tambahan antara jadual Incoming_Applications_Current dan jadual Halls. Setiap JOIN dilaksanakan menggunakan ID HallPref sebagai syarat padanan. Oleh itu, pertanyaan mendapatkan semula semua maklumat yang diperlukan daripada tiga jadual, termasuk pilihan nama asrama pelajar, bukan hanya ID asrama.
Dengan melaksanakan pertanyaan komprehensif ini, anda boleh membuat paparan dengan berkesan yang memberikan gambaran lengkap maklumat pelajar, termasuk pilihan asrama mereka yang diwakili oleh nama yang boleh dibaca manusia.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pandangan SQL Menyertai Tiga Jadual (StudentSignUp, Incoming_Applications_Current dan Halls)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!