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!