[转载]SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
来源:互联网 发布:淘宝原创衣服品牌 编辑:程序博客网 时间:2024/04/26 05:21
前几天在查数据中的时候用了and结果一直不对(查的数据多了)直到我把and 改成where 数据就正常了!
看到一篇帖子!特意转载,原博主未申明不可转载,若作者不愿意则删除…
源博地址:http://www.cnblogs.com/iffan/p/6602361.html
众所周知,数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFT JOIN 等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就会用到过滤语句。
LEFT JOIN ON WHERE:在临时表生成后,再对临时表的数据进行过滤,再返回左表。
LEFT JOIN ON AND:在临时表生成的过程时,ON中的条件不管是否为真,都将返回左表。
例如:
表1.id 表1.value 表2.value 表2.name 1 100 100 开心 2 200 200 很开心 3 300 300 超级开心 4 400 400 无敌开心
SQL语句如下:
[1] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) WHERE 表2.name = 开心 [2] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) ON 表2.name = 开心
当执行[1]的时候得:
表1.id 表1.value 表2.value 表2.name 1 100 100 开心
当执行[2]的时候得:
表1.id 表1.value 表2.value 表2.name 1 100 100 开心 2 200 NULL NULL 3 300 NULL NULL 4 400 NULL NULL
阅读全文
0 0
- js执行环境
- 成绩总汇
- 20171023测试
- Ubuntu16.04中将python3设置为默认
- CodeForces292C Beautiful IP Addresses(简单搜索加大暴力乱搞)
- [转载]SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
- 10. Regular Expression Matching
- Idea Intellij加载项目之后端口号修改
- 购物车(二级列表)
- etherem创世块的创建、创建账户以及账户间的建立通道
- Android Recyclerview适配器 加载头部 以及自定义View
- 大话设计模式----开放-封闭原则
- nginx 服务器上Laravel5.1框架的一些配置
- 腾讯云 centos7 配置服务器所需要知道的