gpt4 book ai didi

sql - 使用 IN 子句的子查询

转载 作者:行者123 更新时间:2023-12-02 07:13:40 25 4
gpt4 key购买 nike

----------
User
----------
user_ID(pk)
UserEmail

----------
Employer1
----------
Emp1ID(pk)
Emp1NO

----------
Employer2
----------
Emp2ID(pk)
Emp2NO

----------
Project
----------
ProjEmpID
ProjEmpMGRID

我需要显示用户电子邮件 ID。表之间的关系是这样的:在 Employer(1&2) 表中 EmpID 包含 User 表中 UserID 的值。

Employer No 与 Project 表中的值相关。EmpNo 包含来自 ProjEmpID、ProjEmpMGRID 的值。

 select u.user_email from users u, Employer emp 
where emp.Emp1ID = u.user_id and
emp.Emp1NO IN
(select ProjEmpID,ProjEmpMGRID from project)
union
select u.user_email from users u, Employer emp
where emp.Emp2ID = u.user_id and
emp.Emp2NO IN
(select ProjEmpID,ProjEmpMGRID from project)

但我在子查询中出现错误,说明 IN 子句中的参数过多。有没有其他方法可以重写查询以获得结果。任何帮助,将不胜感激。

最佳答案

您只能从子查询中返回一列。如果您只需要员工 ID 和经理 ID,请考虑将联合查询作为您的子查询:

    emp.Emp2NO IN
(select ProjEmpID from project
union
select ProjEmpMGRID from project)

或重写以使用两个 IN 查询,每个查询都有单独的子查询。

关于sql - 使用 IN 子句的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144912/

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