错误:SubQuery返回多个记录

时间:2014-03-20 03:43:43

标签: sql sql-server database

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

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

如何修复???

3 个答案:

答案 0 :(得分:6)

方法1:

您需要在此使用 JOIN

试试这个

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

<强>方法2:

您可以使用 IN 条款

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

答案 1 :(得分:1)

尝试替换&#39; =&#39;使用&#39;在&#39;中签署外部查询。

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

希望它有助于

Vishad

答案 2 :(得分:0)

这是另一种做法

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