循环子查询的每一行/子查询返回的值超过1个

camsedfj  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(307)

我有这样的数据库:

我想为会议中id为会议=206247的每个员工获取员工会议日。我做到了:

SELECT Employee_conferenceDay From Employee Where ID_Employee = (Select ID_Employee From Conference Where ID_conference = 206247);

我得到一个信息:
子查询返回了多个值。当子查询后跟=,!=,<,<=,>,>=或者当子查询用作表达式时。
如何用这种方式对子查询表中的每一行执行某项操作?

6g8kf2rb

6g8kf2rb1#

之所以出现此错误,是因为系统中有多个员工 conferenceID_conference = 206247 . 哪里 = 用于比较一个值,当您有多个值时,可以使用以下选项之一。
第一种选择是使用 EXISTS ```
SELECT
Employee_conferenceDay
From Employee e
Where EXISTS (
select
ID_Employee
From Conference c
Where e.ID_Employee = c.ID_Employee
and ID_conference = 206247
);

第二种选择是使用 `IN` ```
SELECT 
    Employee_conferenceDay 
From Employee 
Where ID_Employee IN (
    Select 
        ID_Employee 
    From Conference 
    Where ID_conference = 206247
);

相关问题