这是 JOIN、Lookup 还是如何 select 仅记录匹配两个表中的列
Is this a JOIN, Lookup or how to select only records matching a col from two tables
我有两个 postgres 表,其中列出城市名称的一列匹配。我正在尝试创建一些记录的视图,这些记录是我通过 GeoServer 上的 WMS 在地图上显示的。
我需要 select 仅记录 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
保留左侧的所有记录 table,只保留右侧的匹配记录。如果您只想要出现在两者中的那些 - 需要 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;
我有两个 postgres 表,其中列出城市名称的一列匹配。我正在尝试创建一些记录的视图,这些记录是我通过 GeoServer 上的 WMS 在地图上显示的。
我需要 select 仅记录 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
保留左侧的所有记录 table,只保留右侧的匹配记录。如果您只想要出现在两者中的那些 - 需要 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;