Rumah >pangkalan data >tutorial mysql >Bagaimana Mencari Kursus Tidak Didaftarkan oleh Pelajar Tertentu Menggunakan Gabungan Luar Kiri dalam Rails 4?
Left Outer Join in Rails 4: Querying for Courses Not Associated with a Student
Dalam Rails 4, anda mempunyai tiga model: Student, Kursus, dan Enrolmen Pelajar. Anda ingin menanyakan senarai kursus yang tidak dikaitkan dengan pelajar tertentu dalam jadual Enrolmen Pelajar.
Menggunakan kaedah joins(), anda ingin melaksanakan pertanyaan SQL berikut:
SELECT * FROM Courses c LEFT JOIN StudentEnrollment se ON c.id = se.course_id WHERE se.id IS NULL AND se.student_id = <SOME_STUDENT_ID_VALUE> and c.active = true
Untuk mencapai ini dalam Rails 4, anda boleh menggunakan kaedah joins() dan lulus rentetan yang mewakili join-SQL. Walau bagaimanapun, adalah disyorkan untuk menggunakan penamaan jadual standard Rails untuk kejelasan:
joins("LEFT JOIN student_enrollments ON courses.id = student_enrollments.course_id")
Ini akan melakukan gabungan luar kiri antara jadual Kursus dan Pendaftaran Pelajar dan mendapatkan semula semua kursus yang tidak dikaitkan dengan pelajar yang ditentukan.
Atas ialah kandungan terperinci Bagaimana Mencari Kursus Tidak Didaftarkan oleh Pelajar Tertentu Menggunakan Gabungan Luar Kiri dalam Rails 4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!