我有一个数据库,保存每个登录到我的服务器根据用户ip
2018-08-07 00:00:00, 10.1.1.1
2018-08-06 07:00:00, 10.1.1.1
2018-08-05 00:22:00, 10.1.1.1
2018-08-07 00:00:00, 10.1.1.5
2018-08-05 00:00:00, 10.1.1.5
等等。。。。。
我想知道每个ip的最新连接是什么时候,所以最后我看到:
2018-08-07 00:00:00, 10.1.1.5
2018-08-07 00:00:00, 10.1.1.1
我试过这个:
SELECT IP,Time
FROM sample.connection
WHERE Time in (SELECT MAX(Time) from sample.connection GROUP BY IP);
但它不工作-我没有看到所有ip的最新连接(只有其中一些)
我的ip是varcahr(45)
时间就是日期时间
怎么了?
3条答案
按热度按时间pbpqsu0x1#
http://sqlfiddle.com/#!9/8楼E51/1
du7egjpx2#
我一定错过了什么。为什么这不是一个简单的max和group-by选择?
sshcrbum3#
尝试下面的查询,您需要一个子查询和联接:
http://sqlfiddle.com/#!9/8楼E51/2