解决方案 »

  1.   

    select m.mid,m.name,m.type,count(p.pid) as number from modul m 
    left join modul m1 on m.mid=m1.parentId and m1.type=子模块 
    left join post p on p.mid=m.mid or p.mid=m1.mid
    where m.type=父模块 group by m.mid
      

  2.   

     select d,sum(k)
     from(
     select modul.mid as d,cound(*) as k
     from modul ,post
     where modul.mid=post.mid
     and modul.type=1
     group by modul.mid
     union all
      select modul.parentId,cound(*) as k
     from modul ,post
     where modul.mid=post.mid
     and modul.type=2
     group by modul.parentId
     ) v
     group by d上面语句基于楼主的文字描述随便猜的。不保证正确。
    如果不符合要求,建议楼主举例说明。.
      

  3.   

    .谢谢,,几乎是对的,
    但您好像忽略一种情况:如果某父模块下没有发帖子子,最终 group by 的结果将不显示此父模块记录(没用left join)。
    要是能将没发帖子的父模块记录也显示出来只不过帖子数为0就好。
    我表述可能不太清楚,如果您能看懂,帮我再改改吧。。非常感谢您的帮助。。
      

  4.   

    .谢谢,,几乎是对的,
    但您好像忽略一种情况:如果某父模块下没有发帖子子,最终 group by 的结果将不显示此父模块记录(没用left join)。
    要是能将没发帖子的父模块记录也显示出来只不过帖子数为0就好。
    我表述可能不太清楚,如果您能看懂,帮我再改改吧。。非常感谢您的帮助。。
    .
    .
      

  5.   

    .谢谢,,几乎是对的,
    但您好像忽略一种情况:如果某父模块下没有发帖子子,最终 group by 的结果将不显示此父模块记录(没用left join)。
    要是能将没发帖子的父模块记录也显示出来只不过帖子数为0就好。
    我表述可能不太清楚,如果您能看懂,帮我再改改吧。。非常感谢您的帮助。。
    .
    .
    谢谢您,我通过你的帮组 ,问题已得到解决!