一张组织机构表,其中分四级政府,银行,合作社,合作社分社。每一个合作社都会有所属政府。政府下有多个合作社。合作社通过groverment_id字段关联政府的id字段
一张社员表,其中根据bark_id字段关联组织机构表中的合作社的id字段
现在要查出 政府机构下面的合作社,和每个合作社的社员总数!
求大神!!!!!!

解决方案 »

  1.   

    select h.groverment_id, bark_id, num from 合作社 h,(select t.bark_id bark_id ,count(bark_id) num  from 社员表 t where t.bark_id in (select h.id from 合作社 h,政府表 z where z.id = h.groverment_id)) s where s.bark_id=h.id
      

  2.   

    大神我只有两张表政府和合作社都算组织机构,都在组织机构表里面然后里面通过合作社通过bank_id关联政府的id,然后社员表中通过branch_id关联合作社id。求 政府下面有几个合作社和合作社对应的社员总数
      

  3.   

    大神我只有两张表政府和合作社都算组织机构,都在组织机构表里面然后里面通过合作社通过bank_id关联政府的id,然后社员表中通过branch_id关联合作社id。求 政府下面有几个合作社和合作社对应的社员总数
    那你通过内连接将合作社的id取出,按照你的思路,政府id对应合作社id是1对多,用in,然后通过合作社的id取出社员表中的人员1对多,不过这个可以用count了。你思路不是挺清晰的吗
      

  4.   


    SELECT g2.id,g2.name,COUNT(*) 合作社总数,
    (SELECT COUNT(*) FROM 社员表  s
    WHERE s.bark_id = g1.id)社员总数
     FROM 组织机构表  g1,组织机构表  g2
    WHERE g1.groverment_id = g2.id
    GROUP BY g2.id