码迷,mamicode.com
首页 > 数据库 > 详细

【知识库】-数据库_MySQL 的七种 join

时间:2019-07-16 18:14:13      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:文章   外连接   key   sel   inf   img   inner   数据库   close   

 

 

  作者:haifeisi

  文章出处: MySQL 的七种 join

  

  创建数据库表‘tbl_dept‘和‘tbl_emp‘

技术图片

 

技术图片
CREATE DATABASE db0206;
USE db0206;

CREATE TABLE `db0206`.`tbl_dept`(  
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `deptName` VARCHAR(30),
  `locAdd` VARCHAR(40),
  PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8;

CREATE TABLE `db0206`.`tbl_emp`(  
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(20),
  `deptId` INT(11),
  PRIMARY KEY (`id`),
  FOREIGN KEY (`deptId`) REFERENCES `db0206`.`tbl_dept`(`id`)
) ENGINE=INNODB CHARSET=utf8;
View Code

 

 

  插入数据

技术图片

 

技术图片
/*插入数据*/
INSERT INTO tbl_dept(deptName,locAdd) VALUES(RD,11);
INSERT INTO tbl_dept(deptName,locAdd) VALUES(HR,12);
INSERT INTO tbl_dept(deptName,locAdd) VALUES(MK,13);
INSERT INTO tbl_dept(deptName,locAdd) VALUES(MIS,14);
INSERT INTO tbl_dept(deptName,locAdd) VALUES(FD,15);

INSERT INTO tbl_emp(NAME,deptId) VALUES(z3,1);
INSERT INTO tbl_emp(NAME,deptId) VALUES(z4,1);
INSERT INTO tbl_emp(NAME,deptId) VALUES(z5,1);

INSERT INTO tbl_emp(NAME,deptId) VALUES(w5,2);
INSERT INTO tbl_emp(NAME,deptId) VALUES(w6,2);

INSERT INTO tbl_emp(NAME,deptId) VALUES(s7,3);

INSERT INTO tbl_emp(NAME,deptId) VALUES(s8,4);
View Code

 

  ‘tbl_dept‘表和‘tbl_emp‘表

  技术图片        技术图片

 

 

一、内连接

  内连接文氏图

  技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a inner join tbl_emp b on a.id=b.deptId;

 

   技术图片

 

 

二、左外连接

  左外连接文氏图

  技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

 

  技术图片

 

 

三、右外连接

  右外连接文氏图

   技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId;

 

   技术图片

 

 

 四、左连接

   左连接文氏图

   技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;

 

  技术图片

 

 

五、右连接

  右连接文氏图 

  技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null;

 

 技术图片

 

 

 六、全连接

   全连接文氏图

技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId 
union 
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

 

  技术图片

 

 

七、两张表中都没有出现的数据集

   文氏图

  技术图片

  • 执行的sql语句以及执行的查询结果
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId 
union 
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

 

  技术图片

 

【知识库】-数据库_MySQL 的七种 join

标签:文章   外连接   key   sel   inf   img   inner   数据库   close   

原文地址:https://www.cnblogs.com/1138720556Gary/p/11196351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!