小编给大家分享一下mysql连接查询中and与where的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
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,只是基表相反。
以上是“mysql连接查询中and与where的区别是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!