社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

对来自不同表的同一ID上的单独行进行计数:mysql

Wilf • 6 年前 • 1462 次点击  

我想计算同一台飞机和客户机的数量 usr_id . 以下是我的资源:

客户端数据库

+---------+--------+
| clnt_id | usr_id |
+---------+--------+
|    1    |   a1   |
+---------+--------+
|    2    |   a1   |
+---------+--------+
|    3    |   a2   |
+---------+--------+
|    4    |   a1   |
+---------+--------+

空调客户数据库

+---------+--------+---------+
|  ac_id  | usr_id | clnt_id |
+---------+--------+---------+
|    1    |   a1   |    1    |
+---------+--------+---------+
|    2    |   a2   |    2    |
+---------+--------+---------+
|    3    |   a2   |    1    |
+---------+--------+---------+
|    4    |   a2   |    3    |
+---------+--------+---------+

根据上表。我想数数

  1. 有多少 clnt_id 在同样的情况下 乌苏里德
  2. 有多少 ac_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。我哪里做错了?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34069
 
1462 次点击  
文章 [ 1 ]  |  最新文章 6 年前
forpas
Reply   •   1 楼
forpas    6 年前

你想数数:
clnt_id 从桌子上 clients_db
ac_id 从桌子上 aircon_client_db
对于 usr_sid='a1' 对吧?
我看不出有必要加入这些会议。
您可以在同一查询中使用两个子查询分别计数:

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

如果有重复的情况 克朗特 S在 客户端数据库 或复制 阿克西 S在 空调客户数据库 然后使用:
count(distinct clnt_id) count(distinct ac_id)