我有 4 个表 - employee
、company
、employee_company
和 action
。
employee_company
包含 employee_id
和 company_id
,action
包含 employee_id
.
或者,employee_company
有一个指向 employee
和 company
的外键,而 action
有一个外键给员工
。
我正在尝试找出一种方法来获取属于拥有多个员工的公司的所有员工的列表,并且该公司的任何员工都没有在 action
表中的条目。
我将 sequelize.js
用作 orm,因此无论是原始 SQL 还是通过 sequelize 执行此操作的某种方式都会有所帮助。
最佳答案
使用子查询查找拥有多名员工的公司,并使用左连接操作:
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 子句 - 过滤掉具有操作的员工,因为在没有连接时左连接行具有全空列。
关于mysql - 从一个表中获取所有行的列表,满足两个不同表中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545897/