我非常了解基本的SQL查询,但是我从未使用过处理分层数据的查询。
我使用Telerik TreeView控件显示与学校董事会相关的数据,具有以下结构:
--School "ABC"
----Class "Grade 1"
----Class "Grade 2"
------Student #1
------Student #2
--School "DEF"
----Class "Grade 1"
------Student #3
----Class "Grade 3"
TreeView处于三态复选框模式,因此可以检查每个元素。因此,如果检查单个子元素,那么也将检查父元素,并且在检查父元素时,将检查所有子元素。
在检查了一些学校,班级和学生之后,以下屏幕在图表中显示有关学生的信息,该图表当前使用学校ID(如果选中多个)以选择这些学校的所有学生。
这里变得棘手。以上述结构为例,我选择了等级#"等级1"来自学校" ABC"和班级" 3年级和34岁;来自学校" DEF"反过来会选择#1& #2和学校" ABC" &安培; " DEF"
选定的学校:ABC,DEF
所选课程:1年级,3年级
选定的学生:#1,#2
如前所述,我当前的SQL查询仅基于学校ID,我知道我不能在where子句中添加另外两个条件,如下所示:
AND ClassID IN ('Grade 1', 'Grade 3') --Note there is no primary key for classes, and I can't change that in my position..
AND StudentID IN (1,2)
因为这也将选择其他班级标题#34; 1年级和34年级的学生#3;
所以我的问题是,如何将学校ID,班级名称和学生ID组合成一个可以解决这个问题的条件。
修改
这是表格的结构。
答案 0 :(得分:0)
如果我理解正确,你就有选定的学校,班级和学生。那么这对你有用吗?
where (school = "ABC" and
class = "Grade1")
OR
(school = "DEF" and
class = "Grade3")
我希望我能正确理解你的要求。