mysql多表关联count某张表_MySQL使用JOIN COUNT多个表

我尝试使用连接从多个表中选择总数时遇到问题. COUNT的结果不正确.

我有三张桌子:

Customers

id -> Primary/Autoincrement

name

Documents

id -> Primary/Autoincrement

customer_id

Documents_items

id -> Primary/Autoincrement

document_id

我想获得按客户名称分组的文件和文件项目总数.

SELECT cust.name,

COUNT(doc.id),

COUNT(item.id)

FROM customers AS cust

INNER JOIN documents AS doc ON doc.customer_id = cust.id

INNER JOIN documents_items AS item ON item.document_id = doc.id

GROUP BY cust.name

问题是COUNT(doc.id)的结果等于COUNT(item.id)的结果,这是不正确的.

您可以在SQLFiddle中看到错误的演示示例.

输入示例:

INSERT INTO customers VALUES('John')

INSERT INTO documents VALUES(1)

INSERT INTO documents_items VALUES(1), VALUES(1)

预期产量:

Name | Total Docs | Total Items

John 1 2

当前输出:

Name | Total Docs | Total Items

John 2 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值