gpt4 book ai didi

带有连接和分组依据的mysql查询

转载 作者:行者123 更新时间:2023-11-30 21:41:52 26 4
gpt4 key购买 nike

我使用 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 |
+------+-------+------------------+-----------+----------------+

name值在hotspots表中有值但不显示.当我将此查询作为 right join 进行时,它显示名称列并为其他列显示 null

最佳答案

有些帐户没有关联的热点。其中31个是准确的。由于 hotspots 表位于联接的右侧,因此当没有匹配的 MAC 地址时它将为 NULL。您的查询将 NULL 分组在一起,并计算您看到的聚合。

也许您打算在联接的左侧设置热点

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;

关于带有连接和分组依据的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51170118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com