繁体   English   中英

从一个表获取所有行的列表,该表满足两个不同表中的多个条件

[英]Get a list of all rows from one table, that satisfies multiple criteria in two different tables

我有4个表employeecompanyemployee_companyaction

employee_company包含employee_idcompany_id ,而action除其他外还包含employee_id

或者, employee_companyemployeecompany具有外键,而actionemployee则具有外键。

我正在尝试找出一种方法来获取属于拥有多名雇员的公司的所有雇员的列表,并且该公司中没有雇员在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子句-可以过滤掉带有操作的员工,因为在没有联接的情况下,左联接的行具有全空列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM