错误:SubQuery返回多个记录

Baq*_*qvi 2 sql database sql-server

我正在尝试执行一个查询,以获取属于特定宿舍的所有学生,在SqlServer上使用hostel id,但面临错误Subquery returned more than 1 value.查询:

select * from students 
where StudentID=(select studentID from Student_To_Hostel where hostelID=2)
Run Code Online (Sandbox Code Playgroud)

怎么解决???

Vig*_*r A 6

方法1:

你需要在这里使用JOIN

试试这样吧

SELECT S.* 
From Students S Inner JOIN Student_To_Hostel SH ON
              SH.StudentID =S.StudentID
WHERE SH.hostelID=2
Run Code Online (Sandbox Code Playgroud)

方法2:

您可以使用IN子句

SELECT * 
FROM students 
where StudentID IN (
                    SELECT studentID FROM Student_To_Hostel where hostelID=2
                   )
Run Code Online (Sandbox Code Playgroud)