如何在没有子查询的情况下同时计算两个关系

时间:2015-09-16 05:37:38

标签: mysql join count

假设表A与表B和表C有很多关系。我想实现A.id,count(B.id),count(C.id)结果。如何在不使用子查询的情况下获得该结果?

1 个答案:

答案 0 :(得分:1)

您可以使用distinct功能中的count()关键字来实现此目的。例如:

select
  A.id,
  count(distinct B.id),
  count(distinct C.id)
from A
  left outer join B on B.A_id = A.id
  left outer join C on C.A_id = A.id
  group by A.id;

参考:MySQL docs on count(distinct)