两个表,一个people,一个workspace
其中people表中有如下属性:
ID,Name,preworkspace ……
workspace表中只有两个属性:
ID,name数据约束性规定people表中的preworkspace只能出现workspace表中name描述的对象。现在要查询所有workspace表中的每个工作单位的人数,初步设想了一个这样的语句:
select workname,count(PreWorkplace) from workplace,people  where workplace.workname=people.PreWorkplace group by workname
结果等同于在单一的表People中查询:
select PreWorkplace,count(PreWorkplace) from people group by PreWorkplace不足之处在于,workspace表中的ID属性无法表示出来,而且,当People表没有“人民法院”这个单位的任何员工时,查询结果就不会出现“人民法院”的值现求一个语句,能够实现:
ID(单位ID),Name(单位名称),Count(单位人数)
其中如果在people表中不存在该单位,也要显示,并且在单位人数一列中填上"0"

解决方案 »

  1.   

    select w.ID,w.Name,count(p.ID)
    from workspace w left join people p on w.name = p.preworkspace
    == 思想重于技巧 ==
      

  2.   

    好像不行耶,我一般都在MYSQL里的,可是这次接了市里的一个小项目,要改人家的程序,它的数据库是access,我把题目在这个板块拿来问问高手,看看,刚刚那个语句在access中执行出错,太晚了,我要回去了,明天过来把出错信息贴上,感谢楼上的朋友
      

  3.   

    select w.ID,w.Name,count(p.ID)
    from workspace w left join people p on w.name = p.preworkspace
    group by w.ID,w.Name
    == 思想重于技巧 ==