@teachers = User.joins(:students).where("student_id IS NOT NULL")
Rails查询]加入之间的区别
上面的工作,下面没有。
@teachers = User.includes(:students).where("student_id IS NOT NULL")
据我了解,连接和包括应既带来不同的性能相同的结果。根据this,您使用includes
加载由Model调用的对象的关联记录,其中joins
只需将两个表一起添加。使用includes
也可以防止N+1 queries
。
第一个问题:为什么我的第二行代码不工作?
第二个问题:任何人都应该在类似于上面的情况下总是使用includes
?
你是什么意思不起作用? –
检查了这一点:http://railscasts.com/episodes/181-include-vs-joins – Nobita