テーブルAの4つの列が表Bの4つの列と同じであることを確認するためにチェックを実行しようとしています。次に、両方の5番目の列の値が同じ。 (20,000〜40,000)のレコードを各テーブルに格納します。MS Access/SQL大規模なデータセットを結合する
私はアクセスでこれをやろうとしましたが、ハングしているように見えますが、なぜデータセットがかなり大きいかを理解することができます。
私は問題の4つの列を結合しようとしましたが、それぞれを4つ連結し、連結を比較しようとしました。問題は、ハングして結果を返さないことです。
誰でもこの問題の適切な方法についてアドバイスできますか?
私が考えることのできる唯一のことは、データを最初に並べ替えることですが、遅くなる可能性があり、Selectクエリが早期に終了するかどうかわかりません。 ありがとうございます。
遅すぎる2 SELECT DISTINCT TableA.ColA & TableA.ColB & TableA.ColC & TableA.ColD AS C1, TableB.ColA, TableB.ColB, TableB.ColC, TableB.ColD AS C2, TableA.ColA, TableA.ColB, TableA.ColC, TableA.ColD, TableA.ColE, TableB.ColA, TableB.ColB, TableB.ColC, TableB.ColD, TableB.ColE FROM TableA, Table B WHERE TableA.ColA & TableA.ColB & TableA.ColC & TableA.ColD = TableB.ColA & TableB.ColB & TableB.ColC & TableB.ColD
編集1
SELECT TableA.ColA, TableA.ColB, TableA.ColC, TableA.ColD, TableA.ColE, TableB.ColA, TableB.ColB, TableB.ColC, TableB.ColD, TableB.CoLE FROM TableA INNER JOIN Table B ON(TableA.ColA = TableB.ColA, TableA.ColB =TableB.ColB, TableA.ColC = TableB.ColC, TableA.ColD = TableB.ColD)
遅すぎるは:チェックのこの種を行うには良い方法はありますか? 編集:実行に時間がかかりすぎました2、 "応答していません"の12.5分かかりました
を使用し、あなたの' INNER JOIN'の中で 'ON 'TableA.ColA = TableB.ColA = TableB.ColB = TableB.ColB = TableB.ColB =' TableA.ColA = TableB.ColB'の代わりに 'TableA.ColA = TableB.ColB = Accessクエリデザイナーはあなたの結合を設定するために、あなたに 'ON'句の正しい構文を与えるべきです。 – HansUp
結合フィールドに索引を追加します。 – HansUp
最初のクエリテストは、これらのデータテーブルの小さなコピーを使用してください... 20,000〜40,000ではなく、数十行。 – HansUp