gpt4 book ai didi

php - mysql查询根据最新时间戳获取最小值

转载 作者:行者123 更新时间:2023-11-30 22:53:38 24 4
gpt4 key购买 nike

您好,我已尝试为查询找到一个解决方案,以获取最小值和最新时间​​戳。

我有下表

表1

sno user_id   name subject  rank         Timestamp
1 10 SS maths1 1 2014-12-05 17:24:33
2 10 SS maths2 2 2014-12-05 17:24:33
3 10 PH phy1 3 2014-12-05 17:24:33
4 10 PH phy2 4 2014-12-05 17:24:33
5 10 SS maths1 2 2014-12-04 17:24:33
6 10 SS maths2 1 2014-12-04 17:24:33
7 10 PH phy1 3 2014-12-04 17:24:33
8 10 PH phy2 4 2014-12-04 17:24:33

Tabe12

sno  name  Status
1 SS Active
2 PH ACtive
3 So Inactive

所以我试图得到以下结果

 sno userid   name   subject  rank         timpestamp
1 10 SS maths1 1 2014-12-05 17:24:33
2 10 PH phy1 3 2014-12-05 17:24:33

到目前为止,我尝试了这个查询,我能够获得具有不同名称的主题的最新时间和最低排名值。但它们没有相互连接意味着我从其他行获得了最新的时间戳和最小值。请帮助我如何解决它。

SELECT DISTINCT(T1.`name`), 
T1.`user_id`,
T1.`subject`,
MAX(T1.`Timestamp`) as latest_Timestamp,
MIN(T1.`rank `) as rank
FROM Table1 T1,Table2 T2
where T1.`user_id`='10'
AND T2.`status` = 'Active'
AND T1.`name` = T2.`name`
GROUP BY T1.`exercise_id`
ORDER BY T1.`quality_id`, T1.`Timestamp` ASC

最佳答案

关系数据库在集合上运行良好。所以想想不同集合中的数据

  • 你需要一个结合了 t1 和 t2 的集合
  • 您需要 t1 的一个子集,它仅包含每个 user_Id 和名称的最小排名和最大时间戳。

因此,T1 和 T2 结合在一起,生成您需要的数据和列的整体。然后我们加入包含子集的子查询来过滤掉你想要的非最大时间戳和非最小等级。

SELECT T1values.name, 
T1values.user_id,
T1values.subject,
T1values.rank,
T1values.timestamp
FROM Table2 T2
INNER JOIN table1 t1Values
ON t1values.sno = t2.sno
and t2.status='Active'
INNER JOIN (SELECT user_Id, name max(timestamp) maxTime, min(rank) Mrank
FROM Table1
GROUP BY user_Id, Name) T1
ON t1.name = T1values.name
and t1.user_Id = t1values.user_ID
and t1.maxTime = T1Values.timestamp
and t1.rank = T1values.mrank
WHERE T1values.user_id='10'
ORDER BY T1values.quality_id, T1values.Timestamp ASC

关于php - mysql查询根据最新时间戳获取最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27322507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com