gpt4 book ai didi

sql - 从带有 Where 子句的多值列表中选择

转载 作者:行者123 更新时间:2023-12-04 18:12:32 24 4
gpt4 key购买 nike

我正在尝试选择所有 Projects其中有 Employees谁是 AtWork .

Projects:
ProjName | EmpOnProj
--------------------------
Alpha | 1, 2, 3
Beta | 1, 3

Employees:
EmpID | EmpName | AtWork
-------------------------------------
1 | John | TRUE
2 | Mark | FALSE
3 | Mary | TRUE

我需要输出当前可以进行的所有项目;即,我需要显示 Beta因为在 Beta 上工作的员工正在工作。

目前我不能说“所有员工都必须在工作”,只有以下几点:
SELECT ProjName FROM Projects INNER JOIN 
Employees ON EmpOnProj.Value = EmpID
WHERE AtWork = true
GROUP BY ProjName

它返回两者,因为它看到一个正确的员工并显示项目。

最佳答案

我想我解决了这个问题。基本上我是说“显示所有项目,除了有人不在工作的项目”

http://sqlfiddle.com/#!3/36c48/2

SELECT DISTINCT
p_global.ProjName

FROM
Projects AS p_global

WHERE
p_global.ProjName NOT IN
(SELECT DISTINCT
p1.ProjName

FROM
Projects p1 INNER JOIN Employees AS e ON p1.EmpOnProj = e.EmpID

WHERE
e.AtWork = 0)

可能有一个更简单的解决方案,但这有效(或者看起来像它):)

编辑:修改为删除 GROUP BY正如评论中所建议的那样。

关于sql - 从带有 Where 子句的多值列表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12327386/

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