LEFT OUTER JOIN in Rails 4
In Rails 4 ist es möglich, komplexe SQL-Abfragen wie einen LEFT OUTER JOIN mithilfe der Joins-Methode von ActiveRecord auszuführen . Mit dieser Methode können Sie die Join-Bedingungen als Zeichenfolge angeben.
Stellen Sie sich ein Szenario mit drei Modellen vor: Student, Course und StudentEnrollment. Angenommen, Sie möchten eine Liste von Kursen abrufen, die nicht von einem bestimmten Studenten eingeschrieben sind.
Um dies mithilfe eines LEFT OUTER JOIN zu erreichen, kann die folgende SQL-Abfrage verwendet werden:
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
In Rails kann diese Abfrage mit dem folgenden Code ausgeführt werden:
Course.joins("LEFT JOIN student_enrollments ON courses.id = student_enrollments.course_id") .where("student_enrollments.id IS NULL AND student_enrollments.student_id = ?", <SOME_STUDENT_ID_VALUE>). where("courses.active = true")
Durch die Verwendung der Joins-Methode mit einem String-Argument können Sie die Join-Bedingungen angeben Detail. Dieser Ansatz bietet eine flexible Möglichkeit, komplexe Datenbankabfragen in Rails auszuführen.
Das obige ist der detaillierte Inhalt vonWie führe ich in Rails 4 einen LEFT OUTER JOIN durch, um Kurse zu finden, die von einem bestimmten Studenten abgemeldet wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!