SQL语句Left join 中On和Where的用法区别
来源:互联网 发布:全职法师实体书淘宝 编辑:程序博客网 时间:2024/06/06 15:53
SQL语句如下:
SELECT *
FROM 表1
LEFT JOIN 表2 ON 表1.id = 表2.id AND 表2.Name != 'ff'
WHERE 表1.NAME != 'aa'
步骤1:返回笛卡尔积(SELECT * FROM 表1 CROSS JOIN 表2)
步骤2:应用ON筛选器(当前的条件为 表1.id = 表2.id AND 表2.Name != 'ff')
步骤3:添加外部行
这一步只对OUTER JOIN起作用,如果是LEFT JOIN会以左边的表为保留表,如果是RIGHT JOIN会以右边的表为保留表。所谓外部行是指,保留表中的行。即使第二步的ON过滤掉了一些行,在这一步,会根据保留表添加第二步过滤掉的行。当前的例子,不存在这种情况。
步骤4.应用WHERE筛选器(当前是Name != ‘aa’)过滤前三步所生成虚拟表的数据。
总结:如果SQL用的是Left Join ,On后面的条件对Left的表没有作用,只对Right的表有过滤作用,Where语句可以对Left的表有过滤作用
如果SQL用的是Right Join ,On后面的条件对Right的表没有作用,只对Left的表有过滤作用,Where语句可以对Right的表有过滤作用
0 0
- [转载]SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
- SQL语句Left join 中On和Where的用法区别
- SQL语句Left join 中On和Where的用法区别
- SQL语句Left join 中On和Where的用法区别 .
- SQL语句Left join 中On和Where的用法区别
- SQL语句Left join 中On和Where的用法区别
- SQL语句Left join 中On和Where的用法区别
- SQL语句Left join 中On和Where的用法区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别?
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- sql语句中left join、inner join中的on与where的区别
- 二维数组中找最大值,并且输出此行列的值
- 《汇编语言》第二版 王爽著 第七章 更灵活的定位内存地址的方法 要点
- opencv 线性滤波器
- hdu 5318 2015多校对抗赛三
- NYOJ-448-寻找最大数
- SQL语句Left join 中On和Where的用法区别
- APP评测之:用户调研问卷
- WINDOWS多线程-互斥量
- java 当中的多态,面向对象,方法的重载,Final关键字
- .NET框架 三种预定义特性的介绍
- hdu 5335 Walk Out【搜索】
- Windows Phone Silverlight 音乐进度条简单实现
- python matplotlib 基础
- left join on 和where条件的放置