我有两个postgres表,其中一列列出城市名称匹配。我正在尝试通过我的GeoServer上的WMS创建一些我在地图上显示的记录视图。
我只需要选择100k记录的table1中的记录,这些记录的城市名称与20个记录的表2中列出的城市相匹配。
列出我尝试过的所有内容都会浪费你的时间。我已经尝试了每个加入教程和示例,但是,为什么我不能取得任何成功感到困惑。我真的很感激一些方向。
这是一个最新的查询但是,如果这是错误的方法,请忽略,因为我有大约50次类似的尝试。
SELECT t1.id,
t1.dba,
t1.prem_city,
t1.geom
t2.city_label
FROM schema1.table1 AS t1
LEFT JOIN schema2.table2 AS t2
ON t2.city_label = t1.prem_city;
感谢您的帮助!
答案 0 :(得分:2)
您的查询似乎是正确的,只是一个小的更改 - LEFT JOIN
保留左表中的所有记录,只保留右表中的匹配记录。如果您只想要同时显示两者,则需要INNER JOIN
。
SELECT t1.id,
t1.dba,
t1.prem_city,
t1.geom,
t2.city_label
FROM schema1.table1 t1
JOIN schema2.table2 t2
ON t2.city_label = t1.prem_city;