select *from where 和select *from jion on 语句的差别

https://zhidao.baidu.com/question/541791438.html

select 学号 a,成绩 a,姓名 b from 成绩表 a,学生表 b where a.学号=b.学生编号 和 
select 学号 a,成绩 a,姓名 b from 成绩表 a jion 学生表 b on a.学号=b.学生编号 这两个语句是等价的吗 ?  
如果不等价在什么情况下使用这两种查询方式,求大侠解答!!!

 

如果不深入研究的话,结果是一样的,但是个人建议用第二种,效率上应该高于第一种,而且写代码的时候思路也清晰,join on内连接,on后面加连接条件,再加where,但第一种写法中where后的条件都写在一起了,时间长自己就忘了,别人看着也难受

第一种是关联查询查询结果只会出来两张表学号一样的数据出来第二种是级联查询查询结果是参照成绩表出来的,join的表只是作辅助数据,如果有加b.姓名的话,你就会看到,和成绩表学号一样的,就会显示出姓名,而不一样的则会显示null上面两种查询结果不等价但是如果将第二句加上一个条件就等价了select 学号 a,成绩 a,姓名 b from 成绩表 a jion 学生表 b on a.学号=b.学生编号where IsNull(b.学生编号,'')<>''
posted @ 2017-08-31 19:37  zzfx  阅读(2121)  评论(0编辑  收藏  举报