当前位置:Gxlcms > 数据库问题 > 【知识库】-数据库_MySQL 的七种 join

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

时间:2021-07-01 10:21:17 帮助过:4人阅读

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   

人气教程排行