left join取右邊第一條數據


有一個這樣的需求:

 

 

 左連接取右邊的一條時間最大的一條數據

如果寫成:

SELECT * FROM ACT_HI_COMMENT WHERE PROC_INST_ID_  in (4811676,4511941)  GROUP BY PROC_INST_ID_ ORDER BY proc_inst_id_,TIME_ desc

可是實際情況 group by 先執行,order by后執行,結果就是講group by后的數據排序而已.

這里的方法是再加一層group by ,因為group 默認是取第一條數據的

SELECT * FROM (

-- 取出時間最新的一條記錄
SELECT * FROM ACT_HI_COMMENT WHERE PROC_INST_ID_  in (4811676,4511941)  ORDER BY proc_inst_id_,TIME_ desc
) t 
GROUP BY t.proc_inst_id_

結果就是:

 


免責聲明!

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



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