2015-11-07 40 views
0

考虑三个表房源详细信息基于计数另一个表

  • 部门
  • dept_emp
  • 员工

我想列出谁被分配到的部门有更多的员工超过50,000名员工。

我试过几种不同的方法使用子查询,但没有得到它的权利。

这是一次失败的尝试。注:我想细节的员工,他们是在

select 
    a.dept_name, 
    c.* 
from 
    departments a 
left outer join 
    dept_emp b 
on 
    b.dept_no = a.dept_no 
left outer join 
    employees c 
on 
    c.emp_no = b.emp_no 
where 
    c.emp_no 
in 
    (select 
     emp_no 
    from 
     dept_emp 
    group by 
     dept_no 
    having 
     count(dept_no) > 50000 
    ) 
+0

请张贴您的尝试 –

回答

1

部门这是你在找什么?

select 
a.dept_name, 
c.* 
from departments a 
inner join dept_emp b on b.dept_no = a.dept_no 
inner join employees c on c.emp_no = b.emp_no 
where b.dept_no in 
(select dept_no 
from dept_emp 
group by dept_no 
having count(*) > 50000 
) 
+0

为什么内部连接工作和外部不是? – Vietyank

+0

这不是问题。你在子查询中用'emp_no'代替'dept_no'进行组合。 –

+0

非常感谢。我有一个更困难的工作,但这可能引导我。 – Vietyank