mysql连接查询中and与where的区别浅析


Posted in MySQL onJuly 01, 2021

1. 建表

CREATE TABLE `student`  (
  `id` int(11) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `age` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;


INSERT INTO `student` VALUES (1, '张三', 12);
INSERT INTO `student` VALUES (2, '李四', 12);
INSERT INTO `student` VALUES (3, '王五', 12);
INSERT INTO `student` VALUES (4, '赵六', 12);
INSERT INTO `student` VALUES (5, '孙七', 12);
INSERT INTO `student` VALUES (6, '王八', 12);
CREATE TABLE `grade`  (
  `id` int(11) NOT NULL,
  `sid` int(11) NULL DEFAULT NULL,
  `grade` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

INSERT INTO `grade` VALUES (1, 1, 100);
INSERT INTO `grade` VALUES (2, 2, 80);
INSERT INTO `grade` VALUES (3, 3, 99);
INSERT INTO `grade` VALUES (4, 4, 66);

2. inner join-内连接

内连接中and和where没有区别,都是取连接后的结果进行条件筛选。

2.1 不加条件

mysql连接查询中and与where的区别浅析

2.2 and 条件

mysql连接查询中and与where的区别浅析

2.3 where 条件

mysql连接查询中and与where的区别浅析

3. left join - 左外连接

3.1 不加条件

mysql连接查询中and与where的区别浅析

3.2 and 条件

left join中以左表全匹配进行连接,之后使用and进行筛选;不符合条件的左表数据保留,右表数据为null。

mysql连接查询中and与where的区别浅析

3.3 where 条件

在left join 中以左表全匹配进行连接,之后以where进行筛选;只筛选符合条件的数据。

mysql连接查询中and与where的区别浅析

4. right join

同3中left join,只是基表相反。

5. 总结

  • 所有连接,使用where是对连接后符合条件的数据行进行再次的条件筛选,只保留符合条件的数据行;
  • left join连接时,使用and以左表为主,左表数据全部保留,不符合条件的数据行右表数据为null;
  • right join连接时,使用and以右表为主,右表数据全部保留,不符合条件的数据行左表数据为null;

到此这篇关于mysql连接查询中and与where区别的文章就介绍到这了,更多相关mysql连接查询and与where内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL表的增删改查基础教程
Apr 07 MySQL
mysql的MVCC多版本并发控制的实现
Apr 14 MySQL
MySQL 自定义变量的概念及特点
May 13 MySQL
安装配置mysql及Navicat prenium的详细流程
Jun 10 MySQL
MySQL深度分页(千万级数据量如何快速分页)
Jul 25 MySQL
mysql如何能有效防止删库跑路
Oct 05 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
MySQL提取JSON字段数据实现查询
Apr 22 MySQL
mysql字段为NULL索引是否会失效实例详解
May 30 MySQL
MySQL transaction事务安全示例讲解
Jun 21 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 #MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
MySQL query_cache_type 参数与使用详解
Jul 01 #MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 #MySQL
MySQL的Query Cache图文详解
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 #MySQL
mysql优化之query_cache_limit参数说明
Jul 01 #MySQL
You might like
php学习之流程控制实现代码
2011/06/09 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php正则修正符用法实例详解
2016/12/29 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python使用tkinter实现简单计算器
2018/01/30 Python
python如何让类支持比较运算
2018/03/20 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
两道JAVA笔试题
2016/09/14 面试题
机电专业个人求职信范文
2013/12/30 职场文书
狼和鹿教学反思
2014/02/05 职场文书
银行求职信
2014/05/31 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
党员批评与自我批评
2014/10/15 职场文书
自查自纠整改报告
2014/11/06 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
卢旺达饭店观后感
2015/06/05 职场文书