Heim > Datenbank > MySQL-Tutorial > Wie führe ich in Rails 4 einen LEFT OUTER JOIN durch, um Kurse zu finden, die von einem bestimmten Studenten abgemeldet wurden?

Wie führe ich in Rails 4 einen LEFT OUTER JOIN durch, um Kurse zu finden, die von einem bestimmten Studenten abgemeldet wurden?

Susan Sarandon
Freigeben: 2024-12-27 20:33:18
Original
297 Leute haben es durchsucht

How to Perform a LEFT OUTER JOIN in Rails 4 to Find Courses Unenrolled by a Specific Student?

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
Nach dem Login kopieren

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")
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage