查找一個(gè)表中存在而另一個(gè)表中不存在的記錄

字號(hào):

學(xué)校每次考試要按上次考試成績(jī)從高到低排列,學(xué)生按這個(gè)排列安排試室及座位??荚嚧筇崾镜看慰荚嚩加袑W(xué)生缺考或有新轉(zhuǎn)學(xué)進(jìn)來的學(xué)生,這部份學(xué)生不會(huì)出現(xiàn)在上面的成績(jī)排列中。
    這段SQL代碼就是找出這些學(xué)生,做相應(yīng)處理。
    相關(guān)表:
    ClassList 學(xué)生編班表
    字段意義 字段名稱
    學(xué)年 ClassYear
    年級(jí) Grade
    班別 Class
    學(xué)生編號(hào) LearnNo
    ...... ......
    TestSeatList 考試座位安排表
    字段意義 字段名稱
    考試編號(hào) TestNo
    年級(jí) Grade
    試室號(hào) Room
    座位號(hào) Seat
    學(xué)生編號(hào) LearnNo
    ...... ......
    上面兩個(gè)表通過LearnNo相關(guān)聯(lián),因?yàn)閷W(xué)生編號(hào)只有9位,而考試答題卡是10位的,所以TestSeatList中的LearnNO是在ClassList的LearnNo前面補(bǔ)"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