我们的 mysql 数据库处理化学化合物的仓储和季度更新。我们有兴趣在最近的季度上传中找到独特的化合物 - 所以以前从未见过的化合物 (ChemID)。
我已经使用在挖掘类似问题/解决方案时发现的日期范围尝试了下面的一些代码,但无法让它适用于我的应用程序。这是我的尝试 1,它返回 NULL 或变化超时(使用 ChemCaseReports 中的 13M 行)。
请注意,真正的最新 ImportDate
(日期时间类型)是“2012-06-12 05:58:16”。
尝试1:
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'
)
子查询中的 * 是否有必要避免 ChemID.a 和 .b 之间的歧义?我是否需要添加一个 GROUP BY 或 HAVING 子句,或者最初在我的初始选择中提供一个聚合参数,如 GROUP_CONCAT。
我有数学学习障碍,所以问题可能就像我的日期时间翻转 gt、eq 或 lt 符号一样简单。
谢谢你的帮助!