データを 3 番目のテーブルに挿入するために使用するクエリで 2 つのテーブルを接続する必要があります (将来、2 つのテーブルを結合するために使用されます)。これらの表では、関連する列のみに言及します。
PostgreSQL バージョン 9.0.5
表 1: data_table
移行されたデータ、約 10,000 行、関連する列:
id (主キー)、
アドレス (アドレスの先頭、2 番目のテーブルと照合する必要がある文字列。このアドレスの長さはさまざまです。)
表 2: 辞書
辞書、約 900 万行、関連する列:
id (主キー)、
アドレス (完全なアドレス、最初のテーブルと一致させる必要がある文字列、可変長も)
正確に何が必要ですか
これらのテーブルを select ステートメントで正しく接続してから、これらを 3 番目のテーブルに挿入する必要があります。必要なのは、これらのテーブルを正常に接続する方法だけです。
私がやりたい方法は、data_table から各アドレスを取得し、data_table.address で始まる辞書の最初のアドレス (編集: アドレス asc 順) と結合することです (辞書内の多くのアドレスが始まるため、レコードを掛けずに)各 data_table.address を使用)。
また、両方のテーブルのアドレスには不規則なスペースが多く含まれているため、おそらく
replace(address, ' ', '')
それらの両方で(別のアイデアを歓迎します)。ディクショナリには 900 万行あり、サーバーはかなり遅いため、パフォーマンスの問題も発生する可能性があります。
結果は、次のクエリのバリエーションとして表示されます。
select
data_table.id, dictionary_id
from
data_table, dictionary
where
-conditions-