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

Posted 1138720556gary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识库-数据库_MySQL 的七种 join相关的知识,希望对你有一定的参考价值。

 

 

  作者: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的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 的七种join

Mysql 的七种 join sql 编写

MySQL常用的七种join查询

MySQL常用的七种join查询

MySQL常用的七种join查询

MySQL常用的七种join查询