我目前使用的是Microsoft Access 2013,並且我試圖將Table1和Table2連接在一起,但問題在於Table2很大。表1列出了供應商作爲供應商的部分供應商組合。表2是我用每個零件供應商組合的top2最新報價創建的表格。所有這些引號都是從PK quote_id的表格中提取的。我認爲我創建Table2可能是問題,因爲我無法創建Table2與每個部分,供應商組合(我必須由供應商過濾)。這是我用於Table2的查詢。INNER JOIN與一張大桌子
a.part, a.vendor, a.quote_date
FROM quoteTable AS a
WHERE a.quote_date > DATEADD("yyyy", -3, DATE()) AND
a.quote_date IN
(SELECT TOP 2 quote_date
FROM quoteTable
WHERE quote_date > DATEADD("yyyy", -3, DATE()) AND
part=a.part AND vendor=a.vendor
ORDER BY quote_date DESC)
如果有人知道一個更好的方式來選擇從表中的前2最新報價爲每個零件,供應商的組合,我真的很感激它。至於加入,這工作,但會花費太長時間。
SELECT *
FROM Table1 AS a INNER JOIN Table2 AS b ON a.id = b.id
我想知道是否有一種方法,我可以使用表1中的ID過濾表2?事情是這樣的:
SELECT *
FROM Table1 AS a INNER JOIN
(SELECT * FROM Table2 WHERE id=a.id) AS b ON a.id = b.id
您是否爲表格創建索引? –
那麼如果你選擇海量數據,那麼需要很長時間。你真的需要所有的記錄嗎? –
性能問題應該包括'EXPLAIN ANALYSE'和一些關於表格大小,索引,當前時間表現,期望時間等的信息。'Slow'是一個相對術語,我們需要一個真正的值來比較。 –