我有兩個表。一個是預測列表(又名PREDS)。另一個是關於預測(即STATS)的彙總統計。到目前爲止,PREDS具有大約1毫米的線條,但實際上它僅由30個不同的模型生成,因此每個模型都會生成約30,000個預測。MYSQL NOT IN查詢使用DISTINCT()
在STATS表中,每行是一個模型的彙總統計。由於舊模型不再存在,STATS表中約有100行。我試圖找到PREDS表中的哪些模型不在STATS表中,因此我可以更新它們的摘要統計數據。
我想這樣的東西:
SELECT distinct(t1.modelnum) FROM `PREDS` t1
where t1.modelnum not in (select distinct(modelnum) from `STATS` t2);
,但它需要永遠運行。我可以快速運行單獨的兩側(select distinct(modelnum) from...
),但是當它們結合時,好像我做錯了什麼。
有什麼建議嗎?
你對PREDS.modelnum有索引嗎? – 2012-03-17 21:14:50
不,沒有索引。 – screechOwl 2012-03-17 21:16:27
順便說一下,'DISTINCT'不是一個函數,你知道(不在MySQL中)。這是一個使語句返回不同*行*的子句。是的,它適用於行,而不適用於列。 (括號中的列僅僅是括號中的一列。) – 2012-03-17 21:51:39