MySQL通过表1和表2中的ID加入3个表和计数表3

时间:2017-03-13 20:07:24

标签: mysql count sum inner-join

我有三张表,想要对表B中的总结果求和,因为表B将从表C中得到count(*)的总结果。我已经知道如何获得{{1}总共有2个表,但我不知道如何组合3个表。这是我想要的例子和结果。

表A表B中有一个Child,表B中有一些孩子在表C中有一个孩子,所以我只想知道整个表A孙子有多少

enter image description here

enter image description here

enter image description here

enter image description here

这里的代码我已经尝试使用只有2个表的组合:

count(*)

3 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

SELECT a.id_A, a.Name, COUNT(c.id_c) AS total
FROM table_a a
LEFT JOIN table_B b ON a.id_A = b.id_A
LEFT JOIN table_C c ON b.id_B = c.id_B
GROUP BY a.id_a;

这里是 SQL Fiddle

答案 1 :(得分:0)

你可能需要加入表的计数

select a.id_A, a.name, count(*) 
from tableA a
left join tableB b on a.id_A  = b.id_A
left join tableC c on c.id_b = b.id_b
group by a.id_A, a.name

答案 2 :(得分:0)

我认为你正在寻找这个:

SELECT A.*, COUNT(*) as Total
FROM table A
INNER JOIN table B using(id_A)
INNER JOIN table C using(id_B)
GROUP BY A.id_A ;