SELECT t.user_id,t.user_name,t.insert_date, t.stauts
FROM user u,
(SELECT user_id, user_name, insert_date, stauts,
ROW_NUMBER() OVER(PARTITION BY user_id, user_name ORDER BY insert_date DESC) RK
FROM user_info ) t
WHERE u.user_name = t.user_name
AND t.rk = 1
其实你这个最好是用左连接,防止丢失data
SELECT t.user_id, u.user_name, t.insert_date, t.stauts
FROM user u
LEFT JOIN (SELECT user_id, user_name, insert_date, stauts,
ROW_NUMBER() OVER(PARTITION BY user_id, user_name ORDER BY insert_date DESC) RK
FROM user_info ) t
ON t.user_name = u.user_name
AND t.rk = 1