履歴エントリのテーブル内のレコードと一致する新しいエントリのテーブル内のレコードを検索するクエリに取り組んでおり、一致は多くのフィールドの 1 つにある可能性があります。言い換えると:
「current.id = archive.id または current.name = archive.name または current.address = archive.address のすべてのレコードを表示する」
このクエリの私の SQL は次のとおりです。
SELECT current.id, current.name, current.address FROM current
INNER JOIN archive
ON
current.id = archive.id OR
current.name = archive.name OR
current.address = archive.address
私がそれを実行すると、永遠にかかります。これはデータの最初のロードです。アーカイブには常に約 300,000 レコードが含まれますが、現在は 500 から 40,000 の間で変動します。
このクエリを記述するより良い方法はありますか? または、クエリは安定していますが、基になるデータベースに問題がある可能性がありますか?