mysql列计数乘以

jjjwad0x  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(218)

这个问题在这里已经有了答案

多个表的mysql左连接计数(1个答案)
10个月前关门了。
我有两个正确的mysql查询,如下所示:

select 
count(aboneler.abone_isim),
nas.nasname

from nas
left join aboneler on ( aboneler.nas = nas.id )

group by nas.nasname

第一个查询结果和

select 
count(radacct.radacctid)

from nas
left join radacct on ( radacct.nasipaddress = nas.nasname )
where radacct.acctstoptime is null

group by nas.nasname

第二个查询结果,但如果我把这两个查询放在一起,我会得到:

select 
nas.nasname,
count(aboneler.abone_isim),
count(radacct.radacctid)

from nas
left join aboneler on ( aboneler.nas = nas.id )
left join radacct on ( radacct.nasipaddress = nas.nasname )
where radacct.acctstoptime is null

group by nas.nasname

上一个查询结果不应该是这样的。我希望我能解释我的问题。

1l5u6lss

1l5u6lss1#

你可以试试下面的方法-

select A.nasname,cnt1,cnt2 from
(
select nas.nasname,count(aboneler.abone_isim) as cnt1
from nas
left join aboneler on aboneler.nas = nas.id 
group by nas.nasname
)A join 
(
select nas.nasname,count(radacct.radacctid) as cnt2
from nas left join radacct on ( radacct.nasipaddress = nas.nasname )
where radacct.acctstoptime is null
group by nas.nasname
) B on A.nasname=B.nasname

相关问题