gpt4 book ai didi

mysql - SQL - 从链接表中选择 first_table_id,其中第二个表中的所有记录都是指定类型

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:32 24 4
gpt4 key购买 nike

我对 SQL 查询有疑问。我的表:

[work_order]
work_order_id

[link_person_wo]
work_order_id
person_id

[person]
person_id
type

我需要从 link_person_id 获取所有 work_order_id,其中所有人员(链接到此 work_order)的类型为 = employee

例子:

example

作为这个例子的结果,我期望 2, 3

不应包含 1,因为它还包含 Tech 作为人员。

这是我的sql:

SELECT work_order_id FROM link_person_wo JOIN person ON person.person_id = link_person_wo.person_id WHERE type = 'Employee' GROUP BY work_order_id  

它返回所有的 work_order_ids 至少有一个人类型为 employee,我想得到那些人都为“Employee”类型的人

最佳答案

一种简单的方法是反向使用相同的查询,找到所有有非员工的工作订单,并从结果集中消除这些工作订单。

SELECT work_order_id 
FROM link_person_wo a
JOIN person b ON a.person_id = b.person_id
WHERE type = 'Employee'
AND work_order_id NOT IN
(SELECT work_order_id
FROM link_person_wo c
JOIN person d ON c.person_id = d.person_id
WHERE type <> 'Employee'
GROUP BY work_order_id)
GROUP BY work_order_id

关于mysql - SQL - 从链接表中选择 first_table_id,其中第二个表中的所有记录都是指定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50932570/

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