我有以下数据库模式结构:
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
但这不会考虑那些没有任何书籍的学生。如何解决这个问题?