我想计算在同一usr_id
下的空调和客户数量。这是我的资源:
clients_db
+---------+--------+
| clnt_id | usr_id |
+---------+--------+
| 1 | a1 |
+---------+--------+
| 2 | a1 |
+---------+--------+
| 3 | a2 |
+---------+--------+
| 4 | a1 |
+---------+--------+
aircon_client_db
+---------+--------+---------+
| ac_id | usr_id | clnt_id |
+---------+--------+---------+
| 1 | a1 | 1 |
+---------+--------+---------+
| 2 | a2 | 2 |
+---------+--------+---------+
| 3 | a2 | 1 |
+---------+--------+---------+
| 4 | a2 | 3 |
+---------+--------+---------+
根据上表。我要数
clnt_id
下有多少usr_id
ac_id
下有多少usr_id
所以我编码:
select count(acdb.ac_id) as nAC,
count(clnt.clnt_id) as nClnt
from aircon_client_db acdb
left join clients_db clnt on clnt.usr_sid=acdb.usr_sid
where acdb.usr_sid='a1'
我希望答案如下:
但是我测试过。我的结果在两个方面都是相同的-4.我在哪里弄错了?
答案 0 :(得分:1)
您要数:
表clnt_id
和
中的clients_db
个
ac_id
表中的aircon_client_db
个
usr_sid='a1'
,对吧?
我认为没有必要加入表格。
您可以在同一查询中使用2个子查询分别计数:
select
(select count(ac_id) from aircon_client_db where usr_sid = 'a1') as nAC,
(select count(clnt_id) from clients_db where usr_sid = 'a1') as nClnt
如果在clnt_id
中有重复的clients_db
或在ac_id
中有重复的aircon_client_db
,请使用:
count(distinct clnt_id)
和count(distinct ac_id)