3个表  举例
a   爷爷
b   儿子
c   孙子
一个爷爷有多个儿子  同样儿子有多个儿子 那么查询  按照爷爷分组 有多少个儿子 多少个孙子 如下爷爷名  儿子总数  所以总数
张三       5                  15
李四       8                  24

解决方案 »

  1.   

    以下,没有主键,有唯一值也可。
    SELECT 爷爷表.爷爷名,COUNT(DISTINCT 儿子表.主键) 儿子总数,COUNT(DISTINCT 孙子表.主键) 孙子总数 FROM 爷爷表 
    LEFT JOIN 儿子表 ON 儿子表和爷爷表的关联关系,多个关联关系用and分隔。
    LEFT JOIN 孙子表 ON 孙子表和儿子表的关联关系,多个关联关系用and分隔。
    GROUP BY 爷爷表.爷爷名 ;
      

  2.   

    这样肯定不行的,count结果相同
      

  3.   

    这样肯定不行的,count结果相同
    您是觉得结果相同,还是执行过以后结果相同。
      

  4.   

    不好意思我写错 第一次join错字段了,你的方法可以的,就是查询速度有点慢用了300秒,能怎么优化呢?谢谢
      

  5.   

    第一,爷爷表,后边有没有where条件,如果有,加索引。
    第二,儿子表和孙子表,ON后边的条件增加索引。