我有一個學校,同班級,教師,學生,家長等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