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 05 MySQL
MySQL索引篇之千万级数据实战测试
Apr 05 MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
MySQL 如何分析查询性能
May 12 MySQL
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
May 25 MySQL
MySQL下使用Inplace和Online方式创建索引的教程
May 26 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL常用慢查询分析工具详解
Aug 14 MySQL
MySQL远程无法连接的一些常见原因总结
Sep 23 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
May 08 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
Python中join和split用法实例
2015/04/14 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
基于python监控程序是否关闭
2020/01/14 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
pygame实现弹球游戏
2020/04/14 Python
Python colormap库的安装和使用详情
2020/10/06 Python
python中doctest库实例用法
2020/12/31 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
2014年测量员工作总结
2014/12/12 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
二十年同学聚会感言
2015/07/30 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
导游词之南京中山陵
2019/11/27 职场文书