有省,市,县,用户四张表
省有id sname
市有id cname cid
县有id xname xid
用户id yname yid
查出 每个省有多少用户。。
跪求啊

解决方案 »

  1.   

    没猜错的话,市表里的id是省id?以此类推?
    select count(*) from 用户表 where id in
    (
    select xid from 县表 where id in
     (
      select cid from 市表 where id in 
       (
         select id from 省表 where sname = '某省'
       )
     )
    )
      

  2.   

    select count(*) from 省表,市表,县表,人员表
    where 省表.id = 市表.id
    and 市表.cid = 县表.id
    and 人员表.id = 县表.xid
    group by 省表.id
      

  3.   


    我觉得这道题出的有问题,这是面试的一道题,用户的yid是什么
      

  4.   

    应该是cid =省.id  xid=cid  yid=用户id  我是这样的逻辑。。
      

  5.   

    用自然连接逻辑上有可能存在漏洞,一个省没人,则不会被统计,推荐用外连接select sname,count(*) from 
    省表 left join 市表 on 省表.id =cid
    left join 县表 on 市表.cid = xid
    left join 人员表 on 县表.id=yid