我想運行一個檢查,看看如果表A中的4列與表B中的4相同,那麼測試第5列中的值是否相同。 (對於20,000-40,000)記錄在每個表中。MS Access/SQL加入大型數據集
我已經嘗試在訪問中這樣做,但它似乎掛起,我可以理解爲什麼考慮數據集是相當大的。
我已經嘗試加入問題的4列,我試圖在每個連接並比較連接。問題是它既是掛起來的,也不會返回結果。
任何人都可以建議正確/更好的方法來解決這個問題嗎?
我能想到的唯一事情就是先排序數據,但這可能會很慢,我不知道Select查詢是否提前退出。 預先感謝您。
太慢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 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
編輯:是否有更好的方法做這樣的檢查的? 編輯:得到太慢2運行,但它花了12.5分鐘的「沒有響應」
使用'和'而不是條件之間的逗號在'INNER JOIN'的'ON '子句:'TableA.ColA = TableB.ColA AND TableA.ColB = TableB.ColB'而不是'TableA.ColA = TableB.ColA,TableA.ColB = TableB.ColB'如果使用Design View Access查詢設計器設置您的連接,它應該爲您提供'ON'子句的正確語法。 – HansUp
在連接字段中添加索引。 – HansUp
使用這些數據表的較小副本進行初始查詢測試......幾十行而不是20,000到40,000行。 – HansUp