一、問題場景
-
一個表中有關鍵字段tid,action,dateline等,tid代表帖子的id,action代表這個帖子被操作的狀態,dateline代表該數據被插入的時間戳;
-
此表中,每個tid都會有多條不同dateline插入的明細,最后時間插入的明細中的action字段表示當前tid的帖子狀態;
-
現在想要查詢每個tid當前的狀態,即查詢最新發表的那條記錄
-
表中數據樣本:
二、sql語句:
select?a.*?from?pre_forum_threadmod?as?a,(select?tid,max(dateline)?as?dateline?from?pre_forum_threadmod?group?by?tid)?as?b where?a.tid=b.tid?and?a.dateline=b.dateline
三、sql語句解析:
-
上述sql語句中,先查出每個tid的最大的dateline,查詢生成一個臨時表b;
(select?tid,max(dateline)?as?dateline?from?pre_forum_threadmod?group?by?tid)?as?b
-
然后原表a與臨時表b關聯查詢即可:
where?a.tid=b.tid?and?a.dateline=b.dateline
-
查詢后如下圖,每個tid的最新的紀錄就能查出來:
相關文章:
相關視頻:
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END