ホームページ >データベース >mysql チュートリアル >Rails 4で左外部結合を使用して、特定の学生が登録していないコースを検索するにはどうすればよいですか?

Rails 4で左外部結合を使用して、特定の学生が登録していないコースを検索するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-03 11:44:43346ブラウズ

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

Rails 4 の左外部結合: Student に関連付けられていないコースのクエリ

Rails 4 には 3 つのモデルがあります: Student、コースと学生の登録。 StudentEnrollments テーブル内の特定の学生に関連付けられていないコースのリストをクエリしたいとします。

joins() メソッドを使用して、次の SQL クエリを実行します:

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

Rails 4 でこれを実現するには、joins() メソッドを使用して、結合 SQL を表す文字列を渡すことができます。ただし、明確にするために、Rails 標準のテーブル命名を使用することをお勧めします。

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

これにより、Courses テーブルと StudentEnrollments テーブルの間で左外部結合が実行され、指定された学生に関連付けられていないすべてのコースが取得されます。

以上がRails 4で左外部結合を使用して、特定の学生が登録していないコースを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。