首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左连接计数

左连接计数
EN

Stack Overflow用户
提问于 2012-09-24 08:27:56
回答 1查看 136关注 0票数 3

好吧,我想我可能走错了路,但我尝试了这么多不同的想法,似乎找不到正确的方法,所以希望有人能推动我朝着正确的方向前进。

基本上,我会在访问者访问我的网站时记录他们的ip地址,然后识别哪些ip地址属于企业。

因此,表一有一个很长的列表,列出了访问过我网站的人的ip地址,表二有一个我识别的ip地址列表。

现在,我要做的是找出表1中有多少个IP地址已被识别。

下面的代码对ip地址进行了匹配和分组,并显示了表2中的ip地址在表1中出现的次数。

然而,我试图得到的只是一个数字,而不是一组数字,我已经尝试了几种方法来编写查询,但只能让它与一组一起工作

代码语言:javascript
复制
SELECT ip_stats.ip, COUNT(ip_stats.ip) 
FROM ip_stats 
LEFT JOIN main USING (ip)
GROUP BY ip_stats.ip

ip_stats是第一张表,有一长串人访问我的网站。main是表二,其中包含已标识的IP地址的详细信息。

这两个表都有自己的主键,都是id。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 08:32:24

COUNT ip on main

代码语言:javascript
复制
SELECT ip_stats.ip, COUNT(`main`.ip)
FROM ip_stats 
LEFT JOIN main USING (ip)
GROUP BY ip_stats.ip 

更新1

啊,好吧,那么你只需要主表上所有ip的一个值,对吧?因此,您不需要使用LEFT JOIN,而是使用INNER JOIN

代码语言:javascript
复制
SELECT COUNT(DISTINCT ip_stats.ip)
FROM ip_stats 
     INNER JOIN main USING (ip) 

添加了DISTINCT,因此只计算唯一值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12557450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档