我有4个表格 - employee
,company
,employee_company
和action
。
employee_company
包含employee_id
和company_id
,action
除其他外,还包含employee_id
。
或者,employee_company
拥有employee
和company
的外键,action
拥有employee
的外键。
我正在试图找到一种方法来获取属于拥有多名员工的公司的所有员工的列表,并且该公司的员工在action
表中没有条目。
我使用sequelize.js
作为一个orm,所以原始SQL或通过sequelize做某种方式会有所帮助。
答案 0 :(得分:1)
使用子查询查找具有多个员工的公司,以及左联接行动:
select e.*
from (select company_id
from employee_company
group by conpany_id
having count(*) > 1) c
join employee_company ec on ec.company_id = c.company_id
join employee e on ec.employee_id = e.id
left join action a on a.employee_id = e.id
where a.employee_id is null
这应该是合理的自我解释,除了where子句 - 用操作过滤掉员工,因为当没有连接时,左连接行具有全空列。