2010-06-16 2 views
1

제목이 내가 필요한 것입니다.두 개의 검색어를 조합하는 방법은 무엇입니까?

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; 

첫 번째 쿼리 결과는이 다각형이 gid = 2 인 경우 5 분 동안 다각형 내의 모든 점입니다. 하지만이 다각형도 표시하고 싶습니다. 나는

이 질문은 이미 요청 문제와 연결되어

"어떻게 멀리 일부 다각형의 모든 포인트를 찾을 수

... AS SELECT t2.name,t2.the_geom2,t1.the_geom1,t1.label ...하지만 다각형이없는 경우에만 포인트를 가지고 ... 첫 번째 쿼리에 쓰기 시도? ". 하지만 답변을 얻지 못했습니다. 그러니 제발 ...

그리고 ST_expand ok 해결책입니까 아니면 ST_DWithin 또는 ST_buffer를 사용하는 것이 더 좋을까요?

답변

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; 

여전히 명확하지 않은 경우 완전한 테이블 정의와 수행하려는 작업에 대한 자세한 내용을 게시하십시오.

관련 문제