主页 > 知识库 > mysql连接查询中and与where的区别浅析

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

热门标签:Linux服务器 AI电销 地方门户网站 网站排名优化 呼叫中心市场需求 百度竞价排名 服务外包 铁路电话系统

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 不加条件

2.2 and 条件

2.3 where 条件

3. left join - 左外连接

3.1 不加条件

3.2 and 条件

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

3.3 where 条件

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

4. right join

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

5. 总结

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

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

您可能感兴趣的文章:
  • Mysql带And关键字的多条件查询语句
  • mysql条件查询and or使用方法及优先级实例分析
  • MySQL中 and or 查询的优先级分析
  • MySQL左联多表查询where条件写法示例
  • PHP将MySQL的查询结果转换为数组并用where拼接的示例
  • MySQL查询条件中放置on和where的区别分析

标签:兰州 黄山 仙桃 湖南 崇左 湘潭 铜川 衡水

巨人网络通讯声明:本文标题《mysql连接查询中and与where的区别浅析》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266