怎样从一组学号中筛选出在表中查不到的学号?

对于一万个学号(XH)为A00001~A10000的学生,
想要知道在数据库的某个表(例如表stu)中,
这一万个学号中,有哪些是在stu表中查不到的。

除了建临时表,有没有什么简便快捷的方法?

sql

4个回答

1.左右关联用过吧, 1w学号的存储表 tab_1wxh, 待匹配表 tab_stu ,两表之间通过xh 字段左关联

select * from
tab_1wxh t1
left join tab_stu t2 on t1.xh = t2.xh
where t2.xh is null
Alhfors
Alhfors 回复赵戊辰: 谢谢
一年多之前 回复
Killtheworld
赵戊辰 回复Alhfors: 那你可以把带匹配的表tab_stu导出到1wxh所在的excel文件中,然后利用excel的数据透视图,来达到相同的目的
一年多之前 回复
Alhfors
Alhfors 感谢您的回复。是我没说清楚,我的问题是,这一万个学号并不是在一个tab_1wxh这样一个表中,而是别人发来的excel里的,如果使用这种方法,就需要把学号导入到一个临时表里,但我没权限建表。
一年多之前 回复

select * from a where xh not in (select xh from b)

Alhfors
Alhfors 感谢小姐姐的回复,您的查询语句写得简单优雅易懂,值得我学习。然而我没有一个保存了1w学号的表,而是从excel里复制过来的一万个学号。
一年多之前 回复

select * from xh where xh not in (select xh from stu);

把表stu的学号数据导出来,然后假设sheet1的a列是10000个学号,sheet2的a列是导出stu的学号,在sheet1的b列第一行输入=VLOOKUP(A1,Sheet2!A:A,1,FALSE),点击单元格右下角加号,c列第一行输入=if(a1==b1,1,0),点击单元格右下角加号,然后筛选c列为1的就是有的,为0的就是没有的

Alhfors
Alhfors 感谢!
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐