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 * f

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 04:26:58
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 * f

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 * f
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)?

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 * f
当然不会报错,因为你的子查询只是借用了student这个表,而s_id是前边只是省略了前缀,全称是teacher.s_id,这样你就知道为什么不报错了吧?
你这个条件相当于就是恒成立的一个条件了.in里面的行数是根据student表的行数确定的.每一行都是这个s_id