Mysql多条件取最新的数据

场景1:

根据单位id、模板id去表中查询每天最新的计算数据

每天可能会计算多次,产生多条单位和模板的数据,现在需要根据这两个条件查询最新的计算数据

方案:

SELECT t.*
FROM
(
	SELECT *
	FROM risk_assess_record
	where unit_id in(320100DW1542002175817809920,140500DW1541979241619390464,320100DW1543784168285011968,AHHF_QHHFY_20180408,320100DW1542755101473505280,340100DW1600679890556813312,340100DW1600681790182260736,340100DW1600681792342327296,340100DW1598601812196196352,340100DW1610250470494830592,120100DW1582629102815281152,340100DW1636255299604054016,150500DW1541979713814134784,340100DW1569586853873451008,340100DW1638502471275905024,340100DW1600681790807212032,nullDW1572515570312544256,320100DW1541978407196164096,340100DW1543129987429695488,340100DW1600680183898046464,320100DW1546457000315977728,340100DW1598582537049866240,320100DW1567680421070635008,340100DW1600681793101496320,320100DW1543877636873256960,340100DW1600680029539270656,120100DW1567781124539678720,320100DW1567688890943275008,120100FWDX1536276502776119296,340100DW1566674602342481920,340100DW1600681791465717760,110100DW1587983886137163776,340100DW1600681791889342464,340100DW1578663582806048768,340100DW1566675325285302272) and temp_id in(M00059,M00060,M00061) 
	ORDER BY create_time DESC
	LIMIT 2000
) t
GROUP BY t.unit_id

场景2:

根据多条件查询每天最新的数据,每天数据可能计算两次取最新的

方案:

select * from risk_assess_record d2 
where 
(d2.unit_id,d2.create_time) in 
(
	select 
	d1.unit_id,max(d1.create_time)
	from 
	risk_assess_record  d1
	where
	unit_id in(320100DW1542002175817809920,140500DW1541979241619390464,320100DW1543784168285011968,AHHF_QHHFY_20180408,320100DW1542755101473505280,340100DW1600679890556813312,340100DW1600681790182260736,340100DW1600681792342327296,340100DW1598601812196196352,340100DW1610250470494830592,120100DW1582629102815281152,340100DW1636255299604054016,150500DW1541979713814134784,340100DW1569586853873451008,340100DW1638502471275905024,340100DW1600681790807212032,nullDW1572515570312544256,320100DW1541978407196164096,340100DW1543129987429695488,340100DW1600680183898046464,320100DW1546457000315977728,340100DW1598582537049866240,320100DW1567680421070635008,340100DW1600681793101496320,320100DW1543877636873256960,340100DW1600680029539270656,120100DW1567781124539678720,320100DW1567688890943275008,120100FWDX1536276502776119296,340100DW1566674602342481920,340100DW1600681791465717760,110100DW1587983886137163776,340100DW1600681791889342464,340100DW1578663582806048768,340100DW1566675325285302272) and temp_id in(M00059,M00060,M00061) 
	group by d1.unit_id,DATE_FORMAT(d1.create_time,%Y-%M-%D)
)
经验分享 程序员 微信小程序 职场和发展