Rails中的多个表联接

Rails中的多个表联接,第1张

Rails中的多个表联接

要重写您在问题中遇到的SQL查询,我认为它应该类似于以下内容(尽管我很难完全可视化您的模型关系,所以这有点猜测):

RagaContextApplicantsSong.  joins(:raga_contest_applicants => [:raga_content_rounds], :contest_cat).  group('raga_contest_rounds.contest_cat_id')

…这样该

joins
方法可以同时处理两个联接以及
WHERe
子句,最后是
group
调用。

作为更多参考:

如果要将多个关联加入同一模型,则可以简单地列出它们:

Post.joins(:category, :comments)Returns all posts that have a category and at least one comment

如果要加入嵌套表,则可以将它们列出为哈希表:

Post.joins(:comments => :guest)Returns all comments made by a guest

嵌套关联,多个级别:

Category.joins(:posts => [{:comments => :guest}, :tags])Returns all posts with their comments where the post has at least one comment made by a guest

您还可以链接ActiveRecord查询接口调用,例如:

Post.joins(:category, :comments)...produces the same SQL as...Post.joins(:category).joins(:comments)

如果所有其他方法均失败,则始终可以将SQL片段直接传递到

joins
方法中,以此作为从工作查询到达以ARQI为中心的内容的垫脚石

   Client.joins('LEFT OUTER JOIN addresses ON addresses.client_id = clients.id')=> SELECt clients.* FROM clients LEFT OUTER JOIN addresses ON addresses.client_id = clients.id


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5011812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存