inner join,left join,right join 的区别demo

本文简单整理下这几个关联查询的区别:

准备两张表,用户表user,角色表role;其中,user表中包含外键role_id,即role表的id,具体数据如下:
在这里插入图片描述在这里插入图片描述

表初始化数据:
user表:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `role_id` int(11) NOT NULL COMMENT '角色id(1皇上;2妃子;3太监;4侍卫;5大臣)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '赵氏', '16', '2');
INSERT INTO `user` VALUES ('2', '钱氏', '17', '2');
INSERT INTO `user` VALUES ('3', '孙氏', '18', '2');
INSERT INTO `user` VALUES ('4', '李太监', '20', '3');
INSERT INTO `user` VALUES ('5', '周太监', '30', '3');
INSERT INTO `user` VALUES ('6', '吴侍卫', '25', '4');
INSERT INTO `user` VALUES ('7', '郑侍卫', '25', '4');
INSERT INTO `user` VALUES ('8', '王大臣', '25', '5');

role表:

DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色类型名',
  `job` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '角色职责',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES ('1', '皇上', '享受妃子');
INSERT INTO `role` VALUES ('2', '妃子', '伺候皇上');
INSERT INTO `role` VALUES ('3', '太监', '伺候妃子');
INSERT INTO `role` VALUES ('4', '侍卫', '保卫皇宫');

inner join
select * from user u inner join role r on u.role_id=r.id ;
在这里插入图片描述
内连接结果:两表交集

left join
select * from user u left join role r on u.role_id=r.id ;
在这里插入图片描述
左连接(左外连接)结果:左表(user)

right join
右连接(右外连接)结果:右表(role)
select * from user u right join role r on u.role_id=r.id ;
在这里插入图片描述

发布了62 篇原创文章 · 获赞 29 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/csdn_20150804/article/details/103281194
今日推荐