oracle進行一對多關聯查詢的時候,獲取副表(也就是多條記錄的那張表)的最新一條記錄進行關聯,如何獲取多條記錄最新一條呢?


例如以下場景:

一條新聞對應多條審核記錄,用戶想知道這條新聞走到哪一步審核了。

使用:select * from (select b.*,(ROW_NUMBER() OVER (PARTITION BY b.審核記錄id ORDER BY b.審核時間 desc))rn from 審核表 b) where rn = 1;獲取多審核記錄最新一條

利用 ROW_NUMBER()OVER 函數進行分類(PARTITION BY)排序(ORDER BY ),取出多方的最新一條數據進行展示。

例子:select *
from 新聞表 n
left join (select * from (select b. *, (row_number() over(partition by b.審核記錄id  order by b.審核時間  desc)) rn from 審核表  b) e where rn = 1) t
on n.審核記錄id= t.審核記錄id
order by n.發布時間 desc;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM