SQL笔记-on和where的区别
来源:互联网 发布:淘宝网图标放桌面 编辑:程序博客网 时间:2024/06/18 00:35
on和where后都表示查询条件,它们的区别如下:
1、on只能用于连接查询(内连接、外连接、交叉连接),在其他情况下使用on会报错,比如:
select* from test on id = 1;//报错,不能在普通查询里使用on,需要使用where
2、连接查询会产生一张中间表(临时表),on是在生成中间表时使用的条件;而where是在中间表生成后对中间表进行过滤使用的条件。比如:
test1表:
test2表:
select* from test1 left join test2 on test1.id = test2.id and test1.id = 1; select* from test1 left join test2 on test1.id = test2.id where test1.id = 1;
对于第一个语句,结果是:
对于第二个语句,结果是:
3、外连接必须使用on,不然会报错。比如:
select* from test1 left join test2;//报错,没有使用on select* from test1 left join test2 where test1.id = test2.id;//报错,没有使用on
4、在内连接和交叉连接中,单独使用on和where对结果集没有区别。比如:
select* from test1 inner join test2 on test1.id = test2.id; select* from test1 inner join test2 where test1.id = test2.id;
附
以上语句都是在MySQL5.0的情况下测试的。
阅读全文
0 0
- SQL笔记-on和where的区别
- sql where 和on 的区别
- SQL中ON和WHERE的区别
- SQL中ON和WHERE的区别
- sql 中on和where 的区别
- sql 的join on 和 where 区别
- sql中where和on的区别
- sql where 和on 的区别
- SQL中on和where的区别
- sql where和on的区别
- sql join 的on 和 where 区别
- SQL中ON和WHERE的区别
- SQL中ON和WHERE的区别
- T-SQL查询笔记1:当使用联接时on和where子句的区别
- on 和where 的区别
- on和where的区别
- where 和 on 的区别
- on和where的区别
- libpointmatcher配置
- 百度2017春招笔试真题编程题集合
- AngularJS 内置服务 ~ $timeout设置定时器(只调用一次)
- Find Peak Element:寻找数列中的局部峰值
- Fiddler抓包3-工具介绍(request和response)
- SQL笔记-on和where的区别
- MySQL学习之1安装
- JAVA设计模式之单例模式
- Java并发编程:volatile关键字解析
- 数据结构——链表—一元多项式的表示及相加
- HDPCD-Java-复习笔记(8)- lab
- 职业罗盘1
- cookie和session的区别
- html 锚点三种实现方法