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

Comment effectuer une jointure externe gauche dans Rails 4 pour rechercher des cours non inscrits par un étudiant spécifique ?

Susan Sarandon
Libérer: 2024-12-27 20:33:18
original
340 Les gens l'ont consulté

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

LEFT OUTER JOIN dans Rails 4

Dans Rails 4, il est possible d'exécuter des requêtes SQL complexes comme un LEFT OUTER JOIN en utilisant la méthode de jointure d'ActiveRecord . Cette méthode vous permet de spécifier les conditions de jointure sous forme de chaîne.

Considérez un scénario avec trois modèles : Student, Course et StudentEnrollment. Supposons que vous souhaitiez récupérer une liste de cours qui ne sont pas inscrits par un étudiant spécifique.

Pour y parvenir à l'aide d'un LEFT OUTER JOIN, la requête SQL suivante peut être utilisée :

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
Copier après la connexion

Dans Rails, cette requête peut être exécutée en utilisant le code suivant :

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")
Copier après la connexion

En utilisant la méthode joins avec un argument de chaîne, vous pouvez spécifier les conditions de jointure dans détail. Cette approche offre un moyen flexible d'exécuter des requêtes de base de données complexes dans Rails.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal