我正在尝试执行一个查询来获取属于特定宿舍的所有学生,并且在SqlServer上使用hostel id,但面对错误 Subquery returned more than 1 value.
查询是:
select * from students
where StudentID=(select studentID from Student_To_Hostel where hostelID=2)
如何修复???
答案 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)