sql_查詢每個(gè)tid當(dāng)前的狀態(tài):即類別最新發(fā)表的那條記錄
發(fā)表時(shí)間:2023-07-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一、問題場(chǎng)景一個(gè)表中有關(guān)鍵字段tid,action,dateline等,tid代表帖子的id,action代表這個(gè)帖子被操作的狀態(tài),dateline代表該數(shù)據(jù)被插入的時(shí)間戳;此表中,每個(gè)tid都會(huì)有...
一、問題場(chǎng)景
一個(gè)表中有關(guān)鍵字段tid,action,dateline等,tid代表帖子的id,action代表這個(gè)帖子被操作的狀態(tài),dateline代表該數(shù)據(jù)被插入的時(shí)間戳;
此表中,每個(gè)tid都會(huì)有多條不同dateline插入的明細(xì),最后時(shí)間插入的明細(xì)中的action字段表示當(dāng)前tid的帖子狀態(tài);
現(xiàn)在想要查詢每個(gè)tid當(dāng)前的狀態(tài),即查詢最新發(fā)表的那條記錄
表中數(shù)據(jù)樣本:
二、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語句中,先查出每個(gè)tid的最大的dateline,查詢生成一個(gè)臨時(shí)表b;
(select tid,max(dateline) as dateline from pre_forum_threadmod group by tid) as b
然后原表a與臨時(shí)表b關(guān)聯(lián)查詢即可:
where a.tid=b.tid and a.dateline=b.dateline
查詢后如下圖,每個(gè)tid的最新的紀(jì)錄就能查出來:
以上就是sql_查詢每個(gè)tid當(dāng)前的狀態(tài):即類別最新發(fā)表的那條記錄的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。