SQL选择多个变量

时间:2014-01-22 03:08:43

标签: sql-server

我有3个表,主题,主题教师和头。业务规则是每个主题有一个头。

Subject
ID         Name            Code  
1          Mathematics     Math  
2          Biology         Bio  
3          Zoology         Zoo  

SubjectTeacher
TeacherID         JoinDate           SubjectID
1                 2001-12-11         1
2                 2004-12-11         2
3                 2002-12-11         3

Head
TeacherID         StartDate          EndDate
1                 2001-12-11         2016-12-11
2                 2004-12-11         2014-12-11
3                 2002-12-11         2017-12-11

我有2个变量,MathHead和BioHead
我想写一个填充这两个变量的查询 我确定了两种方法。一个是临时表。看似简单的问题太重了 其他是多个查询,每个变量一个。这很简单/容易,但随着变量的增加,查询也会增加 还有更好的方法吗?
更新 我正在做这样的事情。还在上面添加了一个链接表(SubjectTeacher)

SELECT @BioHead = TeacherID
FROM Head head
JOIN SubjectTeacher st on st.TeacherID = head.TeacherID
JOIN Subject subject on st.SubjectID = subject.ID
WHERE subject.Name = 'Biology'

2 个答案:

答案 0 :(得分:0)

在数据库中应用此业务规则的一种简单方法是,只需在主题上有一个列,对教师使用外键约束,除非是HeadTeacherId而不是表名。不能真的告诉它格式化。

答案 1 :(得分:0)

也许你应该联合查询并输出这样的结果集,有点像"键值"的方法:

TYPE| VALUE
head | 'The head of the dep'
teacher | 'the teacher's name'
subject| 'Biology'

如果没有意义,请提供您想要的输出。