我需要在一个查询中连接两个表,我将使用它来将数据插入到第三个表(将来用于连接这两个表)。我将仅提及这些表中的相关列。
PostgreSQL 版本 9.0.5
表 1:data_table
迁移的数据,约 10k 行,相关列:
id(主键),
地址(地址的开头,我需要与第二个表匹配的字符串。这个地址有不同的长度。)
表 2:字典
字典,约 900 万行,相关列:
id(主键),
地址(完整地址,我需要与第一个表匹配的字符串,长度也不同。)
我到底需要什么
我需要在 select 语句中正确连接这些表,然后将它们插入到第三个表中。我所需要的只是一种成功连接这些表的方法。
我想这样做的方法是从data_table中获取每个地址,并将其与以data_table.address开头的字典中的第一个地址(编辑:按地址asc排序)连接起来(不增加记录,因为字典中的很多地址开始每个data_table.address)。
另外,两个表中的地址都包含很多不规则的空格,所以我们可能需要
replace(address, ' ', '')
在他们两个上(欢迎任何替代想法)。由于字典有 900 万行并且服务器相当慢,因此也可能存在一些性能问题。
我将结果视为以下查询的一些变体:
select
data_table.id, dictionary_id
from
data_table, dictionary
where
-conditions-