文章目录

  • 1. 建表
  • 2. on...and
  • 3. where...and

1. 建表

testA

CREATE TABLE testA (Id int ( 10 ) PRIMARY KEY,NAME VARCHAR ( 10 )
)
INSERT INTO testA
VALUES( 1, '小黄' );
INSERT INTO testA
VALUES( 2, '小绿' );
INSERT INTO testA
VALUES( 3, '小白' );
INSERT INTO testA
VALUES( 4, '小黑' );
INSERT INTO testA
VALUES( 5, '小花' );

testB

create TABLE testB (Id int ( 10 ) PRIMARY KEY,age int ( 10 )
)
INSERT INTO testB
VALUES( 1, 10 );
INSERT INTO testB
VALUES( 2, 11 );
INSERT INTO testB
VALUES( 3, 12 );
INSERT INTO testB
VALUES( 4, 13 );

两表如下:

2. on…and

先来一个常用的left join...on

SELECT*
FROMtestA a
LEFT JOIN testB b
ON a.id = b.id


on 后边加 and a.id = 1

SELECT*
FROMtestA a
LEFT JOIN testB b
ON a.id = b.id
and a.id = 1  # 连接限制条件  a.id = 1


on 后边加 and b.id = 1

SELECT*
FROMtestA a
LEFT JOIN testB b
ON a.id = b.id
and b.id = 1


on 后边加 and b.age = a.id

SELECT*
FROMtestA a
LEFT JOIN testB b
ON a.id = b.id
and b.age = a.id

on 后的 and 有两表关联的字段: b.age 和 a.id,由于b.age 没有与 a.id相等的数据
所以a表全部显示,b表内容为空

3. where…and

SELECT*
FROMtestA a
LEFT JOIN testB b
ON a.id = b.id
and b.id > 1where b.id =2

以上sql分解一下:首先看

SELECT*
FROMtestA a
LEFT JOIN testB b
ON a.id = b.id
and b.id > 1


然后再加上where b.id =2

由此可见,on…and是连接。where…and 是过滤!

left join后边跟on...and 和where...and的区别相关推荐

  1. inner join 和 left join 限制条件放在 where 和 on 后面 有什么区别?

    1.inner join 和 left join 限制条件放在 where 和 on 后面 有什么区别? 先说结论: 用 inner join , LEFTJOIN时,条件直接放ON后面,是先筛选后连 ...

  2. left join 后边的on条件 小记

    结论: left join 为保证左表所有行 因此 on里的条件只对右表起作用,控制左表的条件写到这里也没用 原理: on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的 ...

  3. left join的基本用法以及on与where的区别

    文章目录 前言 实例 总结 前言 我们在写sql语句的时候,总是无法避免使用到连接关键词,比如内连接.外连接.种类是很多的,我在这里贴上一张在别处找到的图: 这张图我认为是非常详细了,它展示出了SQL ...

  4. 把条件写在 join on 后面和写到where后面的区别

    部分转载:https://www.cnblogs.com/zsq23837880/p/7040923.html 前两天面试,遇到了一道题.说的是LEFT JOIN关联表中ON,WHERE后面跟条件的区 ...

  5. left join条件放在on后面和where后面的区别

    on后面的条件: 对于左表来说,不管on的条件是否为真,左表都会全部返回 对于右表来说,当on的条件为假时,左表数据用null返回 where后面的条件: 对连接后的结果表进行过滤 如果将右表的过滤条 ...

  6. 2021年大数据Flink(四十五):​​​​​​扩展阅读 双流Join

    目录 扩展阅读  双流Join 介绍 Window Join Interval Join ​​​​​​​代码演示1 ​​​​​​​代码演示2 重点注意 扩展阅读  双流Join 介绍 https:// ...

  7. mysql loop嵌套_MySQL中Nested-Loop Join算法小结

    数据库中JOIN操作的实现主要有三种:嵌套循环连接(Nested Loop Join),归并连接(Merge Join)和散列连接或者哈稀连接(Hash Join).其中嵌套循环连接又视情况又有两种变 ...

  8. Oracle学习笔记:a inner join b与from a,b where a.x=b.x的差异

    近期,在使用Oracle的过程中,由以下两段代码的执行引发的思考,到底 select * from a,b where a.id = b.id 和 select * from a inner join ...

  9. inner join on 加条件和where加条件_SQL学习笔记 - GROUP BY / JOIN / UNION

    最近在DataCamp上学习SQL(基于PostgreSQL)的课程,本文主要记录自己易记混的点,以便日后参考学习,不做原理讲解. GROUP BY(分组)一般和聚合函数一起使用,包括COUNT(), ...

最新文章

  1. 利用SqlHelper.cs实现Web程序对数据库的增、删、改等操作
  2. Cisco端口镜像配置
  3. 你应该知道的浮点数基础知识
  4. 移位操作提高代码的可读性_本地记录或类,以提高流操作的可读性
  5. Eclipse里的快捷键
  6. jeecg boot一对多新增的附表不会主键是一个string_测试开发专题:spring-boot如何使用JPA进行双向一对多配置...
  7. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...
  8. lumen php命令,php – 如何使用命令行手动运行laravel / lumen作业
  9. mysql 语句账号注入_mysql中SQL语句的注入问题
  10. html两个select怎么放在一行,HTML`select`和`input`在一行中
  11. Word去除段前黑点
  12. 【Netty源码系列(一)】SpringBoot整合Netty实现多端口绑定
  13. 光纤跳线的分类和概述
  14. DeFi黑暗森林历险记,我这样追回了百万美元
  15. 2023年CISSP考点及预约时间参考
  16. idea 修改单个文件的 编码格式
  17. 数字经济时代,企业上云将成为数字化转型突破口
  18. Min3D测试-在Android里面载入MMD模型-快速3D模型显示测试-By黑月君
  19. 批处理删除重复的文件
  20. openTSDB详解之Writing Data

热门文章

  1. 小雨的矩阵(DFS三参数模板题)
  2. C# DataGridView 动态添加列和调整列顺序
  3. 统一变更域本地管理员密码
  4. shell脚本 回顾 小练习
  5. CRM系统主要业务流程思维导图
  6. 百度地图与谷歌地图 (常识、区别,更倾向于使用百度地图,纠错信息比谷歌多)...
  7. 适用于各种连锁企业15寸多点触摸android收款机消费机pos机
  8. 四种launchMode启动方式
  9. 通过特性动态获取属性及值
  10. 应用程序架构指导袖珍版