ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。