![](/img/trans.png)
[英]Select from two tables only that rows that satisfies multiple conditions in second table
[英]Get a list of all rows from one table, that satisfies multiple criteria in two different tables
我有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进行某种方式都将有所帮助。
使用子查询来查找拥有多个员工的公司,然后左键操作:
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.