我有一个学校,同班级,教师,学生,家长等SQL服务器自加入多
在USERS
表我收集使用Role
字段类别涉及到学校所有的人:
ID USERID ROLE CLASS PARENTOF SUBJECTS
13 CarolineW parent BillB
12 IsabelF parent AlexC
11 SaraW teacher MATH-3a,MATH-4a,MATH-5b
10 JohnT teacher ENG4a,GEO2a
9 MatildaW student 4a
8 JohnC student 4a
7 AlexC student 4a
6 CamillaH student 4a
5 BillB student 2a
4 AnnG student 1a
我希望能够选择(例如发送邮件)例如“4a”班的学生的所有家长,或者所有与“4a”班学生有关的人(因此学生,老师和家长) )
我在说什么,米不能够执行是选择与该类别所有的人: 我想我必须进行自连接..这样的事情:
select distinct
A1.userid,
A1.name,
A1.Role,
A1.ClassRoom
from Users A1
left join Users A2
on A1.ParentOf=A2.UserID
left join Users A3
on CHARINDEX('4a',A3.Subjects) > 0
和它的作品..但如果我添加像一个过滤器where class='4a'
,显然不显示我的老师和家长
但是我的技能做没有让我进一步去..
能有人指出我在正确的道路?
感谢
吉奥
喜来获得满意的结果! 感谢您的快速回答 – Joe 2014-11-24 06:34:46
我可以清楚地了解你做了什么:首先你选择所有的学生,第二个老师,第三个父母...... 但我无法改进它来达到我的最终目标,那就是: 选择一个用户根据自己的角色发送给所有相关用户: 即: 选择一名学生,我会发电子邮件他或他的父母或他们两个,还是他的老师或所有3个不同的角色 选择一个类别,给所有的学生/所有的家长/所有的教师/所有的所有3 选择一位教师,给所有学生/家长/双方/教师/所有人发邮件3 哪种方法可以避免编写30个不同的查询? – Joe 2014-11-24 06:49:58