作业帮 > 综合 > 作业

select * from teacher where s_id in(select s_id from student

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 21:25:02
select * from teacher where s_id in(select s_id from student) s_id栏位在student表中无,但是不报错
建立如下两个表
student(id,name)
teacher(id,name,s_id)
为什麽以下这个SQL不报错,S_ID栏位在student表中根本不存在
select * from teacher where s_id in(select s_id from student)?
当然不会报错,因为你的子查询只是借用了student这个表,而s_id是前边只是省略了前缀,全称是teacher.s_id,这样你就知道为什么不报错了吧?
你这个条件相当于就是恒成立的一个条件了.in里面的行数是根据student表的行数确定的.每一行都是这个s_id
再问: 不是很明白,我是這樣理解的先執行IN裏面的子句,然後執行外面的,我的思路有問題? select * from teacher where s_id in(select teacher.s_id from student)? S_ID因為student表中沒 所以被他當成是teacher表中的欄位了?