0

我得到的是

表:

employee {id, name, phone, dep_link[fk]} 
department {id, name}
groups {id, name}
employees_groups {id, emp_id_link[fk] ,group_id_link[fk]}
departments_groups {id, dep_id_link[fk], group_id_link[fk]}

逻辑:

  1. 每个员工可以在一个部门,并且该部门可以有很多员工。(一对多是我做的选择{dep_link[fk]}
  2. 每个员工可以在多个组中,一个组可以有多个员工。
  3. 每个部门可以有多个组,一个组可以有多个部门。

我对表格和关系所做的是否正确?我有两个部门(IT、档案),他们是小组的一部分(全部)。将关系添加到部门组表后,如何检索这些部门的员工?

4

2 回答 2

0

例如,在我将关系添加到部门组表中后,我有两个部门(IT,档案)它们是组(全部)的一部分,我如何检索这些部门的员工?

SELECT * FROM employee WHERE employee.dep_link 
IN (SELECT dep_id_link FROM departments_group INNER JOIN groups 
    ON groups.id = group_id_link AND groups.name = 'All')
于 2013-05-19T14:56:10.820 回答
0

我认为这更多的是您要寻找的东西:

select e.id
      ,e.name
      ,e.phone
from employee e
    ,group g
    ,employee_groups eg
where e.id = eg.emp_id_link
  and g.id = eg.group_id_link
  and g.name = "all"

希望能帮助到你。:)

于 2013-05-20T15:54:09.033 回答