SQL语句理解左右连接和where
这里以左连接 left join 为例,说明 on 后面的条件与 where 后面条件的区别
创建测试表:TAB_1、TAB_2
create table TAB_1 as (select 'c' as A,'d' as B,'3' as C,'4' as D from dualunion allselect 'a' as A,'b' as B,'1' as C,'2' as D from dual);
create table TAB_2 as (select 'c' as A,'d' as B,'2' as C,'4' as D from dualunion allselect 'a' as A,'b' as B,'1' as C,'3' as D from dual);
1、在 on 里面限制从表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and N.C='1';
2、 在where里面限制从表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
where N.C='1';
3、 在 on 里面限制主表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and M.C='1';
4、在 where 里面限制主表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
where M.C='1';
5、在 on 里面同时限制主表和从表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and M.C='1'
and N.C='4';
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and M.C='4'
and N.C='1';
6、在 on 里面限制从表,在where里面限制主表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and N.C='4'
where M.C='1';
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and N.C='1'
where M.C='4';
7、在 on 里面限制主表,在 where 里面限制从表
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and M.C='1'
where N.C='4';
select * from TAB_1 M left join TAB_2 N
on M.A=N.A and M.B=N.B
and M.C='4'
where N.C='1';
总结:
通过以上实例,不难看出 on 后面的条件只会作为连接条件进行限定,并不影响结果集,结果集依然按照 left join 的特性进行输出。where 后面的条件是作为连接之后结果集的筛选 。
SQL语句理解左右连接和where相关推荐
- oracle中sql语句(+)符号代表连接
oracle中sql语句(+)符号代表连接 (+)在=前边为右连接 (+)在=后边为左连接 SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b. ...
- SQL语句的内连接,外连接,左连接,右连接,全连接详解例子
SQL语句的内连接,外连接,左连接,右连接,全连接详解例子 1.关系:链接分为内连接,外连接:外连接又分为左连接.右连接和全连接 分别为 内连接:(Inner Join):参与表格以JOIN关键词连在 ...
- oracle sql连接符号,Oracle中sql语句(+)符号代表连接的使用讲解
oracle中sql语句(+)符号代表连接 (+)在=前边为右连接 (+)在=后边为左连接 SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b. ...
- sql语句的内连接、左外连接、右外连接的理解
sql语句 内连接.左外连接.右外连接的理解 大家在初学数据库时,对DQL中的连接查询是否有些疑惑,不知道什么时候什么场景下该用那种连接查询? 不要着急,接下来由我来给大家介绍一下,本人对内连接.左外 ...
- php连接mysql执行sql语句_php+mysql 连接服务器、数据库以及执行SQL语句的类库
展开全部 我这里有个很好的通用数据62616964757a686964616fe78988e69d8331333262363066库连接类,我就喜欢用这个,试试看. class DB_Handle{ ...
- 关于SQL语句的左连接和右连接,内连接和外连接的区别
数据库版本为 mysql Ver 14.14 Distrib 5.6.26, for Win64 (x86_64) 首先举个例子:(左连接和右连接) 现在我们有俩张表中内容如下. 我们使用左连接查询 ...
- sql语句动态创建连接服务器
--建立连接服务器 EXEC sp_addlinkedserver --要创建的链接服务器名称 'DMZLINK', --产品名称 'MS', --OLE DB 字符 'S ...
- Sql语句查询之内连接与外连接
文章目录 一.连接查询 1.什么是连接查询? 2.连接查询的分类 二.内连接 1.内连接之等值连接 2.内连接之非等值连接 3.内连接之自连接 三.外连接 1.什么是外连接,和内连接有什么区别? 一. ...
- sql语句的各种连接
一.INNER JOIN 内连接是最常见的一种连接,只连接匹配的行. inner join语法 select column_name(s) from table 1 INNER JOIN table ...
最新文章
- 国内ITSM解决方案-UNIPER
- Matlab 自带机器学习算法汇总
- 对话智能新高度:全面解读百度开放域对话模型PLATO
- python--*args和**kwargs可变参数
- 4400 万个微软帐户使用泄露的密码
- js点击复制兼容Firefox
- MCGS图库 触摸屏组态图库 触摸屏图库 昆仑通态触摸屏专用CGS
- 指数基金的正确购买姿势
- 百分点数据科学实验室:产品生命周期管理创新应用落地实践
- VisualAge使用技巧(二)
- 深度融合钉钉PaaS,授客学堂助力企业实现培训数字化
- 传统情感分类方法与深度学习的情感分类方法对比
- 云宏刘建平:细说中小企业如何上云
- 超简单EventBus使用
- 转:攻击JavaWeb应用[2]-CS交互安全
- 靶机渗透练习60-digitalworld.local:FALL
- Rust 常见问题之一:Blocking waiting for file lock on package cache
- 预测微前端的未来 - luca
- 【剑指Offer】个人学习笔记_32_从上到下打印二叉树 IIIIII
- Trapcode Particular for Mac(AE 3D粒子插件)
热门文章
- 教娘学电脑(二十三)
- [资料备份] 高效类库汇总【转】
- jmeter响应断言
- MQTT协议详解及v5.0实践——实践类
- 笔记整理3----Java语言高级(三)11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包修饰符
- CodeMix使用的语言和框架:Python
- 2021/8/4- eclipse的优化等级
- 弘辽科技:淘宝和天猫店铺装修区别大吗?有哪些不同?
- MFC创建MEDIA_PLAYER播放器,简单教程
- win10 给C盘增加空间的方法【带软件diskgenius】