log表有字段
id c-ip
1 127.0.0.1
2 127.0.0.1
3 127.0.0.1
4 192.168.0.2
5 192.168.0.2
6 192.168.0.2
7 192.168.0.2
8 192.168.0.2
这样的,要查询数据库中共有多少个IP记录,只用一个SQL语句,我是这样写的
select count(*) from [log] INNER JOIN (select [c-ip],MAX([id]) from [log] group by [c-ip])t1 on [log].[id]=t1.[id] and [log].[c-ip]=t1.[c-ip]
但是执行的时候出错,请问这一句应该怎么写?
Inner join这一句是对的,可以执行,但是返回的是很多记录,我只要返回一个记录。
select [c-ip],MAX([id]) from [log] group by [c-ip]这一句是对的。
id c-ip
1 127.0.0.1
2 127.0.0.1
3 127.0.0.1
4 192.168.0.2
5 192.168.0.2
6 192.168.0.2
7 192.168.0.2
8 192.168.0.2
这样的,要查询数据库中共有多少个IP记录,只用一个SQL语句,我是这样写的
select count(*) from [log] INNER JOIN (select [c-ip],MAX([id]) from [log] group by [c-ip])t1 on [log].[id]=t1.[id] and [log].[c-ip]=t1.[c-ip]
但是执行的时候出错,请问这一句应该怎么写?
Inner join这一句是对的,可以执行,但是返回的是很多记录,我只要返回一个记录。
select [c-ip],MAX([id]) from [log] group by [c-ip]这一句是对的。
FROM (select distinct [c-ip] from log)