Maison >base de données >tutoriel mysql >Comment rechercher des cours non inscrits par un étudiant spécifique à l'aide d'une jointure externe gauche dans Rails 4 ?

Comment rechercher des cours non inscrits par un étudiant spécifique à l'aide d'une jointure externe gauche dans Rails 4 ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 11:44:43403parcourir

How to Find Courses Not Enrolled by a Specific Student Using a Left Outer Join in Rails 4?

Jointure externe gauche dans Rails 4 : requête de cours non associés à un étudiant

Dans Rails 4, vous avez trois modèles : Étudiant, Cours et inscription des étudiants. Vous souhaitez rechercher une liste de cours qui ne sont pas associés à un certain étudiant dans la table StudentEnrollments.

À l'aide de la méthode joins(), vous souhaitez exécuter la requête SQL suivante :

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

Pour y parvenir dans Rails 4, vous pouvez utiliser la méthode joins() et transmettre une chaîne qui représente le join-SQL. Cependant, il est recommandé d'utiliser la dénomination des tables standard Rails pour plus de clarté :

joins("LEFT JOIN student_enrollments ON courses.id = student_enrollments.course_id")

Cela effectuera une jointure externe gauche entre les tables Courses et StudentEnrollments et récupérera tous les cours qui ne sont pas associés à l'étudiant spécifié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn