浅谈!SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
今天的工作学习之路是一个数据库的小知识,当时没有区分出所以然,特此记录分享一下子。
众所周知,数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过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
同理,RIGHT JOIN和FULL JOIN都具备这个特性,注意,INNER JOIN不具备这个特性。
今天就这么愉快的结束吧!
我的心愿是,改变世界!
最新文章
- 常见端口 HTTP代码
- qsort C++ VS2013 leetcode
- BZOJ-1800 飞行棋 数学+乱搞
- [WPF学习笔记]动态加载XAML
- C++拷贝构造函数(深拷贝,浅拷贝)
- hdu 1429 胜利大逃亡(续)
- Shell脚本基础I
- 深入分析iSCSI协议的应用
- udev:renamed network interface eth0 to eth1
- 怎样用jQuery自带方法/函数来获取outerHTML属性
- [ An Ac a Day ^_^ ] CodeForces 659D Bicycle Race 计算几何 叉积
- SQL SERVER与C#的数据类型对应表
- 用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api
- zookeeper分布式部署方案
- BZOJ1889 : Maximal
- 【转】Windows下charles 使用教程指南
- LeetCode 283 Move Zeroes 解题报告
- InstallShield2015制作安装包----------卸载后删除安装目录和文件
- EF6+Sqlite连接字符串的动态设置
- 每日英语:China Bond Trading Dives
热门文章
- [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形
- SQL SERVER运维日记--收缩数据库
- C#编程基础->;XML系列导航
- Linux select I/O 复用
- python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0 解决方案
- [Kafka] - Kafka基本概念介绍
- Maven常用插件简单配置
- nodejs爬虫——汽车之家所有车型数据
- ubuntu14.04 + OpenCV2.4.9 配置方法
- 地图定位CoreLocation框架,地理位置编码与反编码