首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails + SQL:在没有联接时包含联接表

问Rails + SQL:在没有联接时包含联接表
EN

Stack Overflow用户
提问于 2016-03-01 17:53:12
回答 1查看 41关注 0票数 0

我有一个模型,服务,它可以选择属于一个区域。我试图在服务上编写一个查询,使我能够按区域标题以及服务标题查询服务。

我通过以下查询成功地做到了这一点:

代码语言:javascript
复制
 Service.includes(:region).joins(:region).order(Region.arel_table[:title])

但是,不包括不属于某个区域的服务。我希望查询也包括不属于某个区域的查询。在下一个查询中,我更接近:

代码语言:javascript
复制
 Service.where("region_id is null") + Service.includes(:region).joins(:region).order(Region.arel_table[:title])

但是..。

  1. 这感觉既笨重又可怕。
  2. 我需要它返回一个ActiveRecord::数组
  3. 奖金:在Arel。

如何实现包含有关联的记录和没有关联的记录的查询。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 17:59:43

我还没有尝试过这种方法,但是您可以在联接中指定join sql。所以也许是这样的:

代码语言:javascript
复制
Service.includes(:region).joins("LEFT JOIN regions on services.region_id = regions.id").order(Region.arel_table[:title])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35729919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档