有一个表结构:
ID1 (int), ID2 (int), AddedAt (datetime)
其中ID1和ID2是主键。现在该表已包含多达300,000条记录,我需要重组该表以具有1-1关系。这意味着我需要将ID1从主键中删除,并仅将 ID2 设为主键,但有些记录已经包含每个ID1的多个ID2。
现在,在我这样做之前,我需要进行查询以选择存在多个ID2的所有记录并删除它们,只需要留下一条记录 ID2 并且该记录必须是由AdditionalAt 日期时间列确定的最新记录。
这是我到目前为止所拥有的:
SELECT *, COUNT(*) AS Total
FROM TestTable
GROUP BY ID2
HAVING Total > 1
这成功返回了所有记录,但AdditionalBy并不是最新的。我需要在此查询中添加什么以获取 Grouped By ID2 的最新记录只有 1,以便我可以使 ID2 成为主键。
如果这不能在 MySQL 中完成,可以在 PHP 中完成吗?