查找一個表中存在而另一個表中不存在的記錄

字號:

學校每次考試要按上次考試成績從高到低排列,學生按這個排列安排試室及座位。考試大提示但每次考試都有學生缺考或有新轉(zhuǎn)學進來的學生,這部份學生不會出現(xiàn)在上面的成績排列中。
    這段SQL代碼就是找出這些學生,做相應處理。
    相關表:
    ClassList 學生編班表
    字段意義 字段名稱
    學年 ClassYear
    年級 Grade
    班別 Class
    學生編號 LearnNo
    ...... ......
    TestSeatList 考試座位安排表
    字段意義 字段名稱
    考試編號 TestNo
    年級 Grade
    試室號 Room
    座位號 Seat
    學生編號 LearnNo
    ...... ......
    上面兩個表通過LearnNo相關聯(lián),因為學生編號只有9位,而考試答題卡是10位的,所以TestSeatList中的LearnNO是在ClassList的LearnNo前面補"0"的,這里要用Substring把它截出來。
    select * from ClassList
    where ClassYear=2008 And Grade=2 And LearnNo not in(select Substring(LearnNo,2,9) from TestSeatList Where TestNO=200810 And Grade=2)
    Order by learnno