我有两个表。一个是预测列表(又名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