如何在 ruby on rails 中使用 Joins 和 left outer join?

问题描述 投票:0回答:0

我有以下数据库模式结构:

School
has_many :students

Students
has_many :books

Books
(has an attribute pages(integer))

问题是我想要一个学生在学校级别拥有的一本书的所有页数。但也有可能学生没有任何书。

我想使用 ruby 代码和连接和包含等方法选择以下 rails 查询:

SELECT * FROM school INNER JOIN students ON students.school_id = schools.id LEFT OUTER JOIN books ON books.student_id = students.id

我试过以下方法:

School.joins({:students => :books}).all

但这不会考虑那些没有任何书籍的学生。如何解决这个问题?

ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4
© www.soinside.com 2019 - 2024. All rights reserved.