Heim >Datenbank >MySQL-Tutorial >Wie finde ich Kurse, die nicht von einem bestimmten Studenten eingeschrieben sind, mithilfe eines Left Outer Joins in Rails 4?
Left Outer Join in Rails 4: Abfragen nach Kursen, die nicht mit einem Studenten verknüpft sind
In Rails 4 gibt es drei Modelle: Student, Kurs und Studenteneinschreibung. Sie möchten eine Liste von Kursen abfragen, die nicht mit einem bestimmten Studenten in der Tabelle „StudentEnrollments“ verknüpft sind.
Mit der Methode „joins()“ möchten Sie die folgende SQL-Abfrage ausführen:
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
Um dies in Rails 4 zu erreichen, können Sie die Methode „joins()“ verwenden und einen String übergeben, der das Join-SQL darstellt. Aus Gründen der Übersichtlichkeit wird jedoch empfohlen, die Tabellenbenennung nach dem Rails-Standard zu verwenden:
joins("LEFT JOIN student_enrollments ON courses.id = student_enrollments.course_id")
Dadurch wird ein Left-Outer-Join zwischen den Tabellen „Courses“ und „StudentEnrollments“ durchgeführt und alle Kurse abgerufen, die nicht mit dem angegebenen Studenten verknüpft sind.
Das obige ist der detaillierte Inhalt vonWie finde ich Kurse, die nicht von einem bestimmten Studenten eingeschrieben sind, mithilfe eines Left Outer Joins in Rails 4?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!