如何整理两个查询?

时间:2010-06-16 11:45:28

标签: postgresql postgis

标题是我需要的。

CREATE TABLE newTable1 AS SELECT t2.name,t2.the_geom2
FROM t1,t2
WHERE ST_Contains(ST_Expand(t2.the_geom2,0.05),t1.the_geom1) 
      and t1.gid=2;

CREATE TABLE newTable2 AS SELECT t1.the_geom,t1.label FROM t1 WHERE t1.gid=2;

第一个查询结果是多边形内的所有点,除此之外5分钟,此多边形的gid = 2。但我也想显示这个多边形。我试着写第一个查询

... AS SELECT t2.name,t2.the_geom2,t1.the_geom1,t1.label ...但只获得没有多边形的点...

这个问题与已经问过的问题“如何找到远离某些多边形的所有点?”相关联。但是没有得到答复,所以请...

是ST_expand ok解决方案还是最好使用ST_DWithin或ST_buffer?

1 个答案:

答案 0 :(得分:1)

您不能将两个CREATE TABLE语句合并为一个。如果您只是查询数据,为什么要创建表?

听起来你真正想做的是一个查询,它会给你多边形内的点和多边形本身。像这样的东西?

SELECT
    t1.the_geom AS polygon, t1.label AS polygon_label, 
    t2.the_geom2 AS point, t2.name AS point_name
FROM
    t1, t2
WHERE
    ST_Contains(ST_Expand(t2.the_geom2,0.05), t1.the_geom1) 
    AND t1.gid = 2;

如果仍然不清楚,请发布完整的表格定义以及有关您尝试执行的操作的详细信息。