现两张表:
user员工表:name,dept,companyName;
company公司表:companyName,address;
现需查询所有没有员工的公司和有员工的公司;

解决方案 »

  1.   

    没有员工的公司:
    select * from user员工表 as a left join company公司表 as b on a.companyName = b.companyName
    where a.name is null有员工的公司
    select * from user员工表 as a left join company公司表 as b on a.companyName = b.companyName
    where a.name is not null
    或者
    select * from user员工表 as a inner join company公司表 as b on a.companyName = b.companyName
      

  2.   

    select companyname,count(a.*) from user group by companyName order by companyName desc;
      

  3.   


    --有员工
        select companyName from company ,(select companyName ,count(name) cn from user group by companyName) tt where tt.cn>1 and company.companyName=tt.companyName;
    --无员工
         select companyName from company ,(select companyName ,count(name) cn from user group by companyName) tt where tt.cn=1 and company.companyName=tt.companyName;
      

  4.   

    select c.companyName,count(u.companyName) from company c,user u where c.companyName=u.companyName(+) group by c.companyName;
      

  5.   

    有员工的公司:
    select t.companyName from company t where exists (select 1 from user t1 where t1.companyName=t.companyName);
    没有员工的公司:
    select t.companyName from company t where not exists (select 1 from user t1 where t1.companyName=t.companyName);
      

  6.   

    多谢各位的回复,分数不多,请见谅!
    我对各位的意见都分别进行了测试.Thank you !