好吧,我想我可能会以错误的方式解决这个问题,但我已经尝试了很多不同的想法,似乎无法找到正确的方法,所以希望有人能够在正确的方向上推动我。
基本上我会在访问我的网站时记录访问者的IP地址,然后确定哪些IP地址属于企业。
因此,第一表有一长串访问我网站的人的IP地址列表,表二列出了我已经识别的IP地址列表。
现在我要做的是找出表1中有多少IP地址。
我在下面的代码匹配并分组ip地址,并显示表2中ip地址出现在表1中的次数。
然而,我想要得到的只是一个数字,而不是一组数字,我尝试过几种方式编写查询,但只能让它与群组一起工作
SELECT ip_stats.ip, COUNT(ip_stats.ip)
FROM ip_stats
LEFT JOIN main USING (ip)
GROUP BY ip_stats.ip
ip_stats是第一表,有很多人访问我的网站。 main是表2,包含已识别的IP地址的详细信息。
两个表都有自己的主键,两者都是id。
由于
答案 0 :(得分:2)
COUNT
ip
表{/ 1}}
main
更新1
好的,所以你只想要主表上存在的所有SELECT ip_stats.ip, COUNT(`main`.ip)
FROM ip_stats
LEFT JOIN main USING (ip)
GROUP BY ip_stats.ip
的一个值吗?那么您不需要使用ip
,而是使用LEFT JOIN
INNER JOIN
添加了 SELECT COUNT(DISTINCT ip_stats.ip)
FROM ip_stats
INNER JOIN main USING (ip)
,因此只计算了唯一值。