postgresql - 这是 JOIN、Lookup 还是如何只选择与两个表中的列匹配的记录

标签 postgresql join lookup

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

相关文章:

google-sheets - 在另一个键范围中查找一个键范围以获取所有对应的值,而不仅仅是第一个

excel - 检查文本 A 列中的字符串,返回 B 列中的另一个字符串 - Excel

python - Alembic — 在 `alembic_version` 表中存储额外信息

postgresql - 在 PostgreSQL 的触发器函数中重用标识符

java - Hibernate 看不到名称中带有引号的表

django - 我可以轻松地覆盖 Django ORM 'iexact' 以使用 LOWER() 而不是 UPPER() 吗?

MYSQL查询查找不与其他表重叠的行

MySQL 在同一个表上使用不同 WHERE 子句进行多个 SELECT 查询

MySQL distinct join with multiple rows null

c# - 比较两个列表并将匹配列保存到单独的列表