我有三张表,想要对表B中的总结果求和,因为表B将从表C中得到count(*)
的总结果。我已经知道如何获得{{1}总共有2个表,但我不知道如何组合3个表。这是我想要的例子和结果。
表A表B中有一个Child,表B中有一些孩子在表C中有一个孩子,所以我只想知道整个表A孙子有多少
这里的代码我已经尝试使用只有2个表的组合:
count(*)
答案 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 ;