两个表,一个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"
其中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"
from workspace w left join people p on w.name = p.preworkspace
from workspace w left join people p on w.name = p.preworkspace
group by w.ID,w.Name