这是一个JOIN,Lookup或如何只选择与两个表中的col匹配的记录

时间:2016-10-25 13:56:03

标签: postgresql join lookup

我有两个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;

感谢您的帮助!

1 个答案:

答案 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;