0
我有一个模型Service,它可以选择属于一个Region。我试图在服务上编写一个查询,使我能够按区域标题以及服务标题查询服务。Rails + SQL:当没有连接时包含连接表
我设法与下面的查询做到这一点:
Service.includes(:region).joins(:region).order(Region.arel_table[:title])
但是它不包括服务,不属于一个区域。我希望查询也包含那些不属于某个区域的查询。在接下来的询问,我是接近:
Service.where("region_id is null") + Service.includes(:region).joins(:region).order(Region.arel_table[:title])
但是......
- 这种感觉笨重,可怕的
- 我需要它返回一个 的ActiveRecord ::阵列
- 奖励:在Arel。
如何实现包含具有关联性和不具有关联性的记录的查询。
谢谢
谢谢@doon,虽然有点微调,但工作得很好。多表的名字:Service.includes(:region).joins(“LEFT JOIN regions on services.region_id = regions.id”) –
我在答案中对它们进行了复数形式化处理,这也是我从头上得到的结果 – Doon
好东西!你可以链接到任何有价值的信息,而在左边的加入? –