sql_查詢每個tid當前的狀態:即類別最新發表的那條記錄

一、問題場景

  1. 一個表中有關鍵字段tid,action,dateline等,tid代表帖子的id,action代表這個帖子被操作的狀態,dateline代表該數據被插入的時間戳;

  2. 此表中,每個tid都會有多條不同dateline插入的明細,最后時間插入的明細中的action字段表示當前tid的帖子狀態;

  3. 現在想要查詢每個tid當前的狀態,即查詢最新發表的那條記錄

  4. 表中數據樣本:

    sql_查詢每個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_查詢每個tid當前的狀態:即類別最新發表的那條記錄

三、sql語句解析:

  1. 上述sql語句中,先查出每個tid的最大的dateline,查詢生成一個臨時表b;

    (select?tid,max(dateline)?as?dateline?from?pre_forum_threadmod?group?by?tid)?as?b
  2. 然后原表a與臨時表b關聯查詢即可:

    where?a.tid=b.tid?and?a.dateline=b.dateline
  3. 查詢后如下圖,每個tid的最新的紀錄就能查出來:
    sql_查詢每個tid當前的狀態:即類別最新發表的那條記錄

相關文章:

查詢分組后每個分組的前幾條記錄

查詢分組后每個分組的前幾條記錄

相關視頻:

查詢分組后每個分組的前幾條記錄

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享