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

2021-04-21 08:16:26 字數 764 閱讀 9206

學校每次考試要按上次考試成績從高到低排列,學生按這個排列安排試室及座位。但每次考試都有學生缺考或有新轉學進來的學生,這部份學生不會出現在上面的成績排列中。

這段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...