首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RGeo PostGIS多表查询

RGeo PostGIS多表查询
EN

Stack Overflow用户
提问于 2015-03-13 14:33:34
回答 1查看 97关注 0票数 0

下面的查询作为原始sql运行良好,但是由于它访问了2个模型,我不确定如何在活动记录中构造它.

代码语言:javascript
复制
sql =  "SELECT spots.*
              FROM spots, areas 
              WHERE areas.area = '#{@area.area}'
              AND shape && lonlat
              AND ST_Contains(shape,lonlat);"

我怎么才能着手建造这个呢?这不是加入所以..。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 03:08:45

您可以以这种方式生成相同的SQL:

代码语言:javascript
复制
Spot.from("spots, areas")
    .where("areas.area = ?",@area.area)
    .where("shape && lonlat")
    .where("ST_Contains(shape,lonlat)")

但这样,您就不会使用ActiveRecord最喜欢的东西,比如热切的负载和关系。为了获得相同的结果,您可以这样做:

在模型中:

代码语言:javascript
复制
Spot < ActiveRecord::Base
    belongs_to :area
end

Area < ActiveRecord::Base
end

而问题是:

代码语言:javascript
复制
Spot.joins(:area).where(areas: {area: @area.area})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29034941

复制
相关文章

相似问题

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