gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 00:03:35 24 4
gpt4 key购买 nike

我有 4 个表 - employeecompanyemployee_companyaction

employee_company 包含 employee_idcompany_idaction 包含 employee_id.

或者,employee_company 有一个指向 employeecompany 的外键,而 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com