Mar*_*ost 2 mysql sql select max
我在数据库中有一个表,我想在某些条件下从中选择最新的行.
我做了一个小提琴来更好地解释我的需求.
如您所见,我已经尝试创建一个查询来获取我想要的数据.但不幸的是,我不仅获得了最新的行,而且实际上每行都符合条件但是日期.
我试着用伪sql解释我想要的东西:
SELECT * FROM test WHERE date = Max(date) AND user = 'Timmy';
Run Code Online (Sandbox Code Playgroud)
编辑:似乎并不完全清楚我想要什么.'date'描述了配置文件的创建日期.所以我想得到'Timmy'的最新资料.
Tar*_*ryn 10
如果要返回与其关联的最新日期的行,还可以使用子查询来获取结果:
select t1.description,
t1.date,
t1.profile,
t1.user,
Replace(t1.locations, ',', '|') locations
from test t1
inner join
(
select max(date) date, profile, user
from test
group by profile, user
) t2
on t1.user = t2.user
and t1.date = t2.date
and t1.profile = t2.profile
where t1.user = 'Timmy'
order by t1.profile
Run Code Online (Sandbox Code Playgroud)
子查询将返回每个用户和配置文件的最大日期,然后将其连接回用户,配置文件和日期的表格,以返回每个用户的每个配置文件的最新行(或者,就像此处的每个配置文件一样特定用户).