明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

sql_查詢每個(gè)tid當(dāng)前的狀態(tài):即類別最新發(fā)表的那條記錄

[摘要]一、問題場(chǎng)景一個(gè)表中有關(guān)鍵字段tid,action,dateline等,tid代表帖子的id,action代表這個(gè)帖子被操作的狀態(tài),dateline代表該數(shù)據(jù)被插入的時(shí)間戳;此表中,每個(gè)tid都會(huì)有...

一、問題場(chǎng)景

  1. 一個(gè)表中有關(guān)鍵字段tid,action,dateline等,tid代表帖子的id,action代表這個(gè)帖子被操作的狀態(tài),dateline代表該數(shù)據(jù)被插入的時(shí)間戳;

  2. 此表中,每個(gè)tid都會(huì)有多條不同dateline插入的明細(xì),最后時(shí)間插入的明細(xì)中的action字段表示當(dāng)前tid的帖子狀態(tài);

  3. 現(xiàn)在想要查詢每個(gè)tid當(dāng)前的狀態(tài),即查詢最新發(fā)表的那條記錄

  4. 表中數(shù)據(jù)樣本:

    1.png

二、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

1.png

三、sql語句解析:

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

    (select tid,max(dateline) as dateline from pre_forum_threadmod group by tid) as b
  2. 然后原表a與臨時(shí)表b關(guān)聯(lián)查詢即可:

    where a.tid=b.tid and a.dateline=b.dateline
  3. 查詢后如下圖,每個(gè)tid的最新的紀(jì)錄就能查出來:
    1.png

相關(guān)文章:

查詢分組后每個(gè)分組的前幾條記錄

MySQL查詢同個(gè)表中不同分類的前幾條記錄

相關(guān)視頻:

SQL入門教程手冊(cè)

以上就是sql_查詢每個(gè)tid當(dāng)前的狀態(tài):即類別最新發(fā)表的那條記錄的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。