Sql 错误:子查询返回多条记录

Sql 错误:子查询返回多条记录,sql,sql-server,database,Sql,Sql Server,Database,我正在尝试执行一个查询,以获取SqlServer上属于特定宿舍的所有学生,宿舍id为,但遇到错误子查询返回了多个值。查询为: select * from students where StudentID=(select studentID from Student_To_Hostel where hostelID=2) 如何修复它?方法1: 您需要在此处使用 像这样试试 SELECT S.* From Students S Inner JOIN Student_To_Hostel SH O

我正在尝试执行一个查询,以获取SqlServer上属于特定宿舍的所有学生,宿舍id为,但遇到错误
子查询返回了多个值。
查询为:

select * from students 
where StudentID=(select studentID from Student_To_Hostel where hostelID=2)

如何修复它?

方法1:

您需要在此处使用

像这样试试

SELECT S.* 
From Students S Inner JOIN Student_To_Hostel SH ON
              SH.StudentID =S.StudentID
WHERE SH.hostelID=2
方法2:

您可以使用子句

SELECT * 
FROM students 
where StudentID IN (
                    SELECT studentID FROM Student_To_Hostel where hostelID=2
                   )

尝试将外部查询中的“=”符号替换为“in”

   select * from students 
   where StudentID in (select studentID from Student_To_Hostel where hostelID=2)
希望能有帮助


Vishad

这是另一种方法

select * from students 
where EXISTS (select studentID from Student_To_Hostel where hostelID=2)