先查詢表幾條demo數據,名字相同,時間不同
select id,name,create_date from sys_user
方法1:最簡單,且字段全部相同,排除其他字段不同;
先對錶按照時間desc排序,在查詢該層使用group by 語句,它會按照分組將你排過序的數據的第一條取出來
select id,name,create_date from ( select * from sys_user order by create_date desc) a group by a.name
方法2:使用not exists,該方法通過相同名字的不同創建的時間進行比較
select id,name,create_date from sys_user a
where not exists (select * from sys_user b where a.name = b.name and a.create_date < create_date ) ;
方法3:使用內關聯的方式;
select * from sys_user a
inner join (
-- 先查詢出最後一條數據的時間
select id,name, MAX(create_date) create_date from sys_user group by name
) b on a.name = b.name and a.create_date = b.create_date