select 来自 table MySQL 的最新重复记录

select latest duplicate record from table MySQL

这是我的示例表:

表 1:

ID        Runnum    Thickness          Date

1          2           1.23             1/8/2015

2          2           2.32             1/9/2015

3          3           2.21             1/9/2015

4          4           3.12             1/8/2015

表 2:

ID        Runnum    Insitu             

1          2           1.23             

2          3           2.32             

3          4           2.21             

4          5           3.12          

我想要的结果:

Runnum Insitu Runnum Thickness Date

 2       1.23      2           2.32             1/9/2015

 3       2.32      3           2.21             1/9/2015

 4       2.21      4           3.12             1/8/2015

我想加入 table1 和 table2 以及 select 具有最新记录的副本, 这是我到目前为止的查询。

SELECT a.Runnum, a.insitu, b.Runnum, b.thickness
FROM test.dummy_ease a
INNER JOIN (SELECT runnum, thickness, times FROM test.dummy_xrf group by runnum) AS b
ON a.runnum = b.runnum

从该查询返回的值几乎是正确的,除了不返回最新值的重复值。

我假设 table1 中的 ID 设置为 auto_increment 并且最近的一个也基于此标准,那么您必须自行将 table1 连接到最新数据

select a.Runnum,
b.insitu,
b.Runnum Runnumb, 
a.Thickness
from Table1 a
join (select max(ID) ID ,Runnum
      from Table1 
     group by Runnum) a1
using(ID,Runnum)
join Table2 b ON a.Runnum = b.Runnum 

DEMO

如果最近的日期取决于最近的日期标准,那么在内部查询中,您必须 select 日期列的最大值,但从您的样本数据来看,您似乎已将日期存储为 varchar 类型,该类型将不会被处理作为日期对象,您必须首先使用 str_to_date 将其转换为日期对象,然后计算最大日期并再次加入您的 table1 查询将类似于 Demo