2013-07-28 57 views
0

我在数据库错误SQL查询:多个值是不允许

  • 标准
  • 老师
  • 当然

我想retrieve all the coursescourse表3个表内与specific standard相关联。

需要注意的是:

  1. standardteacher之间1 to many relationship
  2. teachercourse之间有1 to many relationship
  3. standardcourse之间有no direct relationship

我试图得到它,但无法检索数据,因为我得到的教师数量是多个,SQL说multiple values are not allowed。有没有办法?

这里是我的查询:

select CourseName 
from Course 
where Course.TeacherID = (
    select TeacherID 
    from Teacher 
    where StandardID = 7 
) 
+0

以下SQL返回多少行?从标准ID = 7 –

+0

老师选择TeacherID它返回2行 – Khushi

+0

所以这是正常的...你不能影响两个值的变量:) –

回答

3

尝试Course.TeacherID IN ...

这是一所学校的工作?

+0

不,这不是一个学校的工作,但我只是想学习VB。网络与SQL Server 2008 – Khushi

+0

谢谢,它按预期工作。 – Khushi

+0

它听起来就像一个作业:D没问题。也许你可以投票正确的答案。 然后有JOIN方法,我认为比双SELECT更好。 SELECT coursename从课程c INNER JOIN techers t ON c.teacherID = t.id INNER JOIN标准s ON t.standardsID = s.id WHERE standardID = 7 –

2

我认为你的问题是你正在使用“=”,请尝试将“=”改为“IN”。见下:

select CourseName 
from Course 
where Course.TeacherID IN (
    select TeacherID 
    from Teacher 
    where StandardID = 7 
) 
+0

这按预期工作。非常感谢你 – Khushi

相关问题