1. 程式人生 > >關於查詢表中時間最新的一條記錄

關於查詢表中時間最新的一條記錄

最近遇到一個sql,要求表中時間最新的一條記錄

假設表名為 test ,時間欄位為sj,姓名為xm,可以用以下語句:

select * from test a where a.sj=(select max(b.sj) from test b where b.xm=a.xm)

之前一直不理解這個查詢的處理流程,猜測是這樣:

1.從a從取一條資料x

2.根據x.xm對b表分組,求b.xm為某個值時,b.sj的最大值。也就是這個人在表中對應的最大時間

3.用x.sj與max(b.sj)進行比較,如果相等,則返回x這條資料