我在PostGIS中使用此代码来内部联接两个多边形文件。
我的桌子:
table p : vietnamgis.vnm_adm3
ID geom ADM1 .... ....
1 01600000.. tan bin
2 01600000.. san
3 01600000.. dan
Table b : vietnamgis.cadastrewfg
gid geom description ... ...
1 01600000.. house
2 01600000.. commercial
3 01600000.. house
我的代码
DROP TABLE IF EXISTS public.overlap;
CREATE TABLE public.overlap AS
SELECT b.geom As bgeom, p.geom As pgeom,
ST_Intersection(b.geom, p.geom) As intersect_bp
FROM vietnamgis.cadastrewfg b INNER JOIN vietnamgis.vnm_adm3 p ON (b,p)
WHERE ST_Overlaps(b.geom, p.geom)
LIMIT 1;
我确实在CREATE EXTENSION postgis;
之前创建了
SELECT PostGIS_Version();
3.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
ERROR: argument of JOIN/ON must be type boolean, not type record
LINE 5: ...mgis.cadastrewfg b INNER JOIN vietnamgis.vnm_adm3 p ON (b,p)
^
这是怎么回事,如何解决加入多边形文件的问题?
答案 0 :(得分:1)
您的join子句似乎是错误的:您应该比较相关的键列,而不是表别名(b
和p
),例如:
FROM vietnamgis.cadastrewfg b
INNER JOIN vietnamgis.vnm_adm3 p ON b.you_b_col_ley = p.you_p_col_key