[英]mysql query with join and group by
我使用mysql数据库在项目上工作,但是当我尝试使用左连接语句从两个表中检索信息时,即使表中有很多数据,也无法显示第一个表中的数据并显示空值。 这是我的查询
SELECT
hotspots.name,
count(distinct(UserName)) as users,
count(radacctid),
avg(AcctSessionTime)as Avg,
sum(AcctSessionTime) as allacctsession
FROM
radacct
left JOIN
hotspots
ON (radacct.mac_address LIKE hotspots.mac)
GROUP BY
hotspots.name;
这是结果
+------+-------+------------------+-----------+----------------+
| name | users | count(radacctid) | Avg | allacctsession |
+------+-------+------------------+-----------+----------------+
| NULL | 7 | 31 | 7433.6774 | 230444 |
+------+-------+------------------+-----------+----------------+
名称值在热点表中具有值,但未显示。 当我将该查询作为右联接时,它显示名称列,而其他列显示为空
有些帐户没有关联的热点。 准确地说是31个。 由于hotspots
表位于hotspots
的右侧,因此当没有匹配的MAC地址时,它将为NULL。 您的查询将NULL分组在一起,并计算您看到的聚合。
也许您想在hotspots
的左侧设置hotspots
?
SELECT hotspots.name,
count(distinct(UserName)) as users,
count(radacctid),
avg(AcctSessionTime)as Avg,
sum(AcctSessionTime) as allacctsession
FROM hotspots left JOIN radacct ON
(radacct.mac_address LIKE hotspots.mac)
GROUP BY hotspots.name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.