Mysql左连接left join on与右连接 right join on,内连接union区别
来源:互联网 发布:匡恩网络女副总裁 编辑:程序博客网 时间:2024/05/17 03:27
数据库中建立了两张表:
tb_stu表:
DROP TABLE IF EXISTS `tb_stu`;CREATE TABLE `tb_stu` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(15) DEFAULT NULL, `sex` varchar(5) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of tb_stu-- ----------------------------INSERT INTO `tb_stu` VALUES ('1', 'a', '男');INSERT INTO `tb_stu` VALUES ('2', 'b', '女');INSERT INTO `tb_stu` VALUES ('3', 'c', '男');INSERT INTO `tb_stu` VALUES ('4', 'd', '男');INSERT INTO `tb_stu` VALUES ('5', 'e', '女');
tb_school表:
DROP TABLE IF EXISTS `tb_school`;CREATE TABLE `tb_school` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(15) DEFAULT NULL, `school` varchar(15) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;-- ------------------------------ Records of tb_school-- ----------------------------INSERT INTO `tb_school` VALUES ('1', '1', '1');INSERT INTO `tb_school` VALUES ('2', '2', '2');INSERT INTO `tb_school` VALUES ('3', '3', '3');INSERT INTO `tb_school` VALUES ('4', '4', '4');INSERT INTO `tb_school` VALUES ('5', '5', '5');INSERT INTO `tb_school` VALUES ('6', 'a', 'a');INSERT INTO `tb_school` VALUES ('7', 'b', 'b');INSERT INTO `tb_school` VALUES ('8', 'c', 'c');INSERT INTO `tb_school` VALUES ('9', 'd', 'd');INSERT INTO `tb_school` VALUES ('10', 'e', 'e');
表的结构如下:
或者这样查看
查看表的结构命令是:
explain tb_school(表名);或者show colunms from tb_stu(表名);或者mysql> use information_schemaDatabase changedmysql> select * from columns where table_name='tb_stu';
表tb_stu有五条数据,表tb_school有十条数据。
其中tb_stu 和 tb_school 相同的字段有五条相同是数据。
现在通过左连接查询:
SELECT a.id, a.name,a.sex, b.id as b_id, b.name as b_name,b.schoolFROM tb_stu aLEFT JOIN tb_school b ON a.name = b.name
从图中看到通过左连接查询结果有五条数据。
总结:左连接查询是以左表为基表,其中 on 是条件。有两张表或者多张表中有相同的字段才会查询出来。
Mysql 有连接:
SELECT a.id, a.name,a.sex, b.id as b_id, b.name as b_name,b.schoolFROM tb_stu aRIGHT JOIN tb_school b ON a.name = b.name
总结:从查询结果可以看到,右连接是以右边为基表,on 的条件不管有没有,都会以右连接的表为基表,故此,查询结果是10条记录。
内连接:
SELECT a.id, a.name,a.sex, b.id as b_id, b.name as b_name,b.schoolFROM tb_stu aINNER JOIN tb_school b ON a.name = b.name
总结:内连接是将表中相同的条件查询出来
union关键字用法:
SELECT a.id, a.name, a.sexFROM tb_stu a GROUP BY a.nameUNION SELECT b.id AS b_id, b.name AS b_name, b.school FROM tb_school bGROUP BYb.name
从内连接查询结果可以看到:查询总记录数是15。
总结:内连接是将两张表中所有的结果都查询出来。
阅读全文
0 0
- Mysql左连接left join on与右连接 right join on,内连接union区别
- 内连接、外连接(左连接、右连接、全外连接)inner join on, left join on, right join on
- mysql左连接left join右连接 right join 内连接 inner join笔记
- 内连接(inner join,=)、左外连接(left join……on)、右外连接(right join……on)
- 【MYSQL】left join on(左连接)
- Sql查询左连接(left join),右连接(right join),内连接(inner join)
- 内连接<inner join>,左外连接<left outer join>,右外连接<right outer join>
- oracle 中 inner join内连接、 left join左连接、right join右连接用法
- 数据库中的左连接(left join),右连接(right join)和内连接(inner join)
- 左连接Left Join,右连接Right Join,内连接Inner Join
- sql之LEFT JOIN(左连接)、RIGHT JOIN(右连接)、INNER JOIN(内连接)
- 左连接右连接 left join right join
- 数据库表连接之左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)
- left join(左联接)right join(右联接) inner join(等值连接) 区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中的左连接(left join)和右连接(right join)区别
- 数据库中左连接(left join)和右连接(right join)的区别
- Mysql基础
- Linux的system()和popen()差异
- springcloud-config配置中心的使用
- 'yarn' 不是内部或外部命令,也不是可运行的程序
- android 使用apt(编译时注解) 自动生成第三方的狗皮膏药代码
- Mysql左连接left join on与右连接 right join on,内连接union区别
- javaweb之request获取请求头和请求数据
- 使用android遇到的问题报failed to open zip file错误
- mybatis参数
- 用三目运算符求出三个数中最大数
- 详解iOS11、iPhone X、Xcode9 适配指南
- VBOX教程
- 索引和查询语句的优化
- 数据结构之快速排序