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