【发布时间】:2014-02-11 22:47:50
【问题描述】:
我有 3 个表,Subject、SubjectTeacher 和 Head。一个业务规则是每个 Subject 有一个 Head。
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
我想编写一个填充这 2 个变量的查询
我确定了两种方法。一种是临时表。对于一个看似简单的问题来说太重了。
其他是多个查询,每个变量一个。这很简单/容易,但随着变量的增加,查询也会增加。
有没有更好的方法?
更新:
我正在做这样的事情。上面还加了一个链接表(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'
【问题讨论】:
-
你提到你有变量,我假设它们是 T-SQL 变量。为方便起见,请显示您已有的查询和/或相关代码以获取您想要的信息。
-
没有标记。我想在连接表上应用过滤器来说明哪些变量应该包含哪些数据。
标签: sql-server