使用mysql按数据导入日期在现有数据集中按日期查找唯一/新值

使用mysql按数据导入日期在现有数据集中按日期查找唯一/新值,mysql,sql,subquery,unique,date-range,Mysql,Sql,Subquery,Unique,Date Range,我们的mysql数据库处理化合物的仓储和季度更新。我们感兴趣的是在最近的季度上传中发现独特的化合物,即以前从未见过的化合物 我尝试了下面的一些代码,使用了我在挖掘类似问题/解决方案时发现的日期范围,但未能使其适用于我的应用程序。下面是我的尝试1,它返回NULL或带有变体超时,在ChemCaseReports中处理大约1300万行 请注意,最新的导入日期时间类型为“2012-06-12 05:58:16” 尝试1: 子查询中的*是否有必要避免ChemID.a和.b之间的歧义?我是否需要在初始sel

我们的mysql数据库处理化合物的仓储和季度更新。我们感兴趣的是在最近的季度上传中发现独特的化合物,即以前从未见过的化合物

我尝试了下面的一些代码,使用了我在挖掘类似问题/解决方案时发现的日期范围,但未能使其适用于我的应用程序。下面是我的尝试1,它返回NULL或带有变体超时,在ChemCaseReports中处理大约1300万行

请注意,最新的导入日期时间类型为“2012-06-12 05:58:16”

尝试1:

子查询中的*是否有必要避免ChemID.a和.b之间的歧义?我是否需要在初始select中添加GROUP BY或HAVING子句,或最初提供GROUP_CONCAT之类的聚合参数

我有一个数学学习障碍,所以这个问题可以像翻转gt、eq或lt符号一样简单


谢谢你的帮助

乍一看,你所需要改变的只是+1-谢谢我现在正在尝试,我有另一张叫做ChemMaster的桌子,上面有所有独特的化学成分,当然没有添加日期。我的问题是我的EXPLAIN是一个ref和一个ALL,其中包含14.6无键/索引和x22行。我是否可以尝试在案例报告中添加ChemMaster表与ChemIDs的联接,因为它确实提供了len 1的索引fpr ChemID。一个新手有这种东西,但只是想加速它-它永远运行,没有输出。@cerd-你能在ImportDate,ChemID上添加覆盖索引吗?所以添加索引ImportDate,ChemdID;-我是否需要删除ChemID现有的BTREE索引?@cerd-无需再添加3个…@cerd-感谢您接受答案,但我们可以假设覆盖索引有帮助吗?
SELECT DISTINCT ChemID
FROM Chem_CaseReports a 
WHERE a.ImportDate = '2012-06-12 05:58:16'
AND NOT EXISTS
(
 SELECT * FROM Chem_CaseReports b 
 WHERE a.ChemID = b.ChemID
 AND b.ImportDate <= '2012-06-12 05:58:16'
)
SELECT DISTINCT ChemID
FROM Chem_CaseReports a 
WHERE a.ImportDate = '2012-06-12 05:58:16'
AND NOT EXISTS
(
 SELECT * FROM Chem_CaseReports b 
 WHERE a.ChemID = b.ChemID
 AND b.ImportDate < '2012-06-12 05:58:16'
)