學校每次考試要按上次考試成績從高到低排列,學生按這個排列安排試室及座位。但每次考試都有學生缺考或有新轉學進來的學生,這部份學生不會出現在上面的成績排列中。
這段sql**就是找出這些學生,做相應處理。
classlist 學生編班表
字段意義
欄位名稱
學年classyear
年級grade
班別class
學生編號
learnno
......
......
testseatlist 考試座位安排表
字段意義
欄位名稱
考試編號
testno
年級grade
試室號room
座位號seat
學生編號
learnno
......
......
上面兩個表通過learnno相關聯,因為學生編號只有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
MYSQL查詢 存在乙個表而不在另乙個表中的資料
a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料,且b表的id欄位有索引。使用 not in 容易理解,效率低 執行時間為 1.395秒...
MYSQL查詢 存在乙個表而不在另乙個表中的資料
a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料,且b表的id欄位有索引。使用 not in 容易理解,效率低 執行時間為 1.395秒 select distinct a.id from a where a.id not in ...
MYSQL查詢 存在乙個表而不在另乙個表中的資料
a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料,且b表的id欄位有索引。使用 not in 容易理解,效率低 執行時間為 1.395秒 1 select distinct a.id from a where a.id not i...