好吧,我知道標題可能有點不清楚,但我找不到更好的標題。讓我來解釋一下情況,我有3個表格(其實很多,但是對於這個例子我們需要3個表格)。
1. teachers
與列teacherid, teachername, other columns (DOB etc)...
2. classes
表與結構classid, classname, other columns (students in class etc)
表列subjectid, subjectname, other columns (unimportant at this point)
根據多個條件選擇一個列(多對多)
現在你可以從probabably表猜測,存在一個多對多的關係,如表一個老師可以教很多課,一個老師可以教許多科目,一個班可以有很多科目等等。所以包含這些多對多關係的表格是......
4. ClassSubject
列ClassId, SubjectId, CustomRemark
分5. TeacherSubject
列TeacherId, SubjectId, CustomRemark
6. TeacherClass
列TeacherId, ClassId, CustomRemark
同樣,你可能已經猜到,表4代表地圖上有什麼類的什麼科目(前兩個欄標註主鍵)。表5代表什麼教師可以教授什麼科目(前兩個標記爲pk),表6代表什麼教師可以教什麼課程。 (我只是希望我明白不要混淆你)
現在的問題是,在這一點上,我有這個字典,Dictionary<int, Dictionary<int, List<int>>> dctClsSubTeachers
存儲在給定的順序,類的id,爲每個類的id ,另一個包含主題id和該類別id的字典,以及如果主題列出可以在相應的類中教授該主題的教師列表。 (它可能聽起來有點複雜,但請考慮一下,我相信它會有道理:(
所以,我需要填充此字典,因此我需要一個查詢思想,我可以提供classId和subjectId作爲參數,並且我得到了一個不僅可以教授這個主題的所有老師的列表,而且還在參數給出的班級中教授這個主題(我們有關係表4,5和6),因此我可以填充該字典
只要你知道,我已經嘗試了很多方法,但它們都沒有工作,一個是我想夫妻倆都..
select teacherId from teachers where teacherid in (SELECT teacherid from teacherclass where classid = k
intersect
SELECT teacherid from teachersubject where subjectid = k2) // I can't use this because access doesn't support intersect
另外一個我試圖
SELECT teacherid
FROM Teachers, (ClassSubject INNER JOIN TeacherClass ON ClassSubject.ClassId = TeacherClass.ClassId) INNER JOIN TeacherSubject ON ClassSubject.SubjectId = TeacherSubject.SubjectId;
,我已經嘗試了幾個多,但不能這樣做,頭痛10HR後,我以爲計算器!所以,任何人都可以請,請幫我在這裏?
PS:如果你需要進一步澄清有關數據庫(或其他任何東西),請隨時提出..
PPS:我使用的MS-Access 2007中,沒有我不能遷移到SQL Server因一些不重要的原因在此討論
認真嗎?你甚至讀過整個問題嗎?我在這裏展示的第二種方法是加入,如果真的與訪問一起工作,則會知道它甚至不支持此語法。你不需要所有的大腦加入,我知道什麼是加入.. 但謝謝你的嘗試。 – Razort4x