最近在写sql的时候遇到一个需求,一张表中有多条数据,需要根据创建时间取最新的一条,从数据库中根据日期字段取最新一条
SELECT
u.*
FROM
user u
WHERE
NOT EXISTS (
SELECT
1
FROM
user u1
WHERE
u.user_id= u1.user_id
AND u.create_date < u1.create_date
)
原理解释:
第一步:先查询出user表中的所有数据;第二步:判断NOT EXISTS中是否有结果集返回,如果有结果集返回,则条件为假,最终结果不返回该数据,如果没有结果集返回,则条件为真,最终结果返回该数据。
EXISTS (sql返回结果集为真)
NOT EXISTS(sql 不返回结果集为真(或返回结果集为假))