有一個這樣的需求:
左連接取右邊的一條時間最大的一條數據
如果寫成:
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_
結果就是: