Mysql 获取所有用户的首次访问日期

Mysql 获取所有用户的首次访问日期,mysql,Mysql,我试图得到一个日期和ip地址的列表,用户第一次查看。以2天为一个列表(实际数据中会有更多ip): 我想返回此用户第一天的2014-07-01。我能做些什么来获得第一天所有用户的列表 我这里的查询是有效的,但我知道它是不正确的,因为如果我将order by从asc更改为desc,反之亦然,我仍然可以得到相同的日期。基本上这是告诉我,它是第一天,它找到这个ip,谁知道数据可能是在数据库中的一些用户向后。我能做些什么来保证我得到他们的第一次访问日期 select date(viewed) as day

我试图得到一个日期和ip地址的列表,用户第一次查看。以2天为一个列表(实际数据中会有更多ip):

我想返回此用户第一天的
2014-07-01
。我能做些什么来获得第一天所有用户的列表

我这里的查询是有效的,但我知道它是不正确的,因为如果我将
order by
asc
更改为
desc
,反之亦然,我仍然可以得到相同的日期。基本上这是告诉我,它是第一天,它找到这个ip,谁知道数据可能是在数据库中的一些用户向后。我能做些什么来保证我得到他们的第一次访问日期

select date(viewed) as day, inet_ntoa(ip) as user_ip
from ad_views
where ad_id = 3058440
and viewed > date_sub(now(), interval 30 day)
group by user_ip order by day;
文档可能对您的搜索有用

文档可能对您的搜索有用

获取日期的
MIN()

select MIN(date(viewed)) as day, inet_ntoa(ip) as user_ip
from ad_views
where ad_id = 3058440
group by user_ip;
获取日期的
MIN()

select MIN(date(viewed)) as day, inet_ntoa(ip) as user_ip
from ad_views
where ad_id = 3058440
group by user_ip;
选择日期,ip
从MyTable t1左外部联接MyTable t2
打开(t1.ip=t2.ip和t1.day
选择日期,ip
从MyTable t1左外部联接MyTable t2

在(t1.ip=t2.ip和t1.day上,因为您已经在分组,所以取查看的
min

select date(min(viewed)) as day, inet_ntoa(ip) as user_ip
from ad_views
where ad_id = 3058440
and viewed > date_sub(now(), interval 30 day)
group by user_ip order by day;

因为您已经在分组,所以取查看的
min

select date(min(viewed)) as day, inet_ntoa(ip) as user_ip
from ad_views
where ad_id = 3058440
and viewed > date_sub(now(), interval 30 day)
group by user_ip order by day;
select date(min(viewed)) as day, inet_ntoa(ip) as user_ip
from ad_views
where ad_id = 3058440
and viewed > date_sub(now(), interval 30 day)
group by user_ip order by day;