我有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'
答案 0 :(得分:0)
在数据库中应用此业务规则的一种简单方法是,只需在主题上有一个列,对教师使用外键约束,除非是HeadTeacherId而不是表名。不能真的告诉它格式化。
答案 1 :(得分:0)
也许你应该联合查询并输出这样的结果集,有点像"键值"的方法:
TYPE| VALUE
head | 'The head of the dep'
teacher | 'the teacher's name'
subject| 'Biology'
如果没有意义,请提供您想要的输出。