----------
User
----------
user_ID(pk)
UserEmail
----------
Employer1
----------
Emp1ID(pk)
Emp1NO
----------
Employer2
----------
Emp2ID(pk)
Emp2NO
----------
Project
----------
ProjEmpID
ProjEmpMGRID
Run Code Online (Sandbox Code Playgroud)
我需要显示用户电子邮件ID.表之间的关系如下:在Employer(1和2)表中,EmpID包含User表中UserID的值.
雇主否与项目表中的值有关.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)
Run Code Online (Sandbox Code Playgroud)
但是我在子查询中得到错误,在IN子句中声明了太多参数.是否有任何其他方法可以重写查询以获得结果.任何帮助,将不胜感激.
您只能从子查询返回一列.如果您只想要员工ID和经理ID,请将联合查询视为子查询:
emp.Emp2NO IN
(select ProjEmpID from project
union
select ProjEmpMGRID from project)
Run Code Online (Sandbox Code Playgroud)
或重写以使用两个IN查询,每个查询具有单独的子查询.