我有两个 postgres 表,其中一列列出的城市名称匹配。我正在尝试创建一些记录的 View ,这些记录是我通过 GeoServer 上的 WMS 在 map 上显示的。
我只需要从 table1 的 100k 记录中选择城市名称与 table2 的 20 条记录中列出的城市名称相匹配的记录。
列出我尝试过的所有内容会浪费您的时间。我已经尝试了每个加入教程和示例,但很困惑为什么我无法取得任何成功。我真的很感激一些指导。
这是一个最新的查询,但是,如果这是错误的方法,请忽略,因为我有大约 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;
感谢您的帮助!
最佳答案
您的查询似乎是正确的,只是一个小改动 - 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;
关于postgresql - 这是 JOIN、Lookup 还是如何只选择与两个表中的列匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40241965/