mysql 七种查询_MySQL 的七种 join-Go语言中文社区

建表

在这里呢我们先来建立两张有外键关联的张表。

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`.`tb_dept`(`id`)

) ENGINE=INNODB CHARSET=utf8;

/*插入数据*/

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);

文氏图与SQL语句的编写以及查询结果

内连接

内连接文氏图

db790fbd612897bb8c8a9969a920e078.png

执行的sql语句以及执行的查询结果

执行的sql语句select * from tbl_dept a inner join tbl_emp b on a.id=b.deptId;

查询结果

514451f3243ffb79c5dc5c5aeaa8ecc6.png

左外连接

左外连接文氏图

2a40a0b52dc10b8258744198ae081db7.png

执行的sql语句以及执行的查询结果

执行的sql语句select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

查询结果

f5e56c9c34ae1e79c2194a03b23c3ed7.png

右外连接

右外连接文氏图

8eb3aad02affd244c58820575aa2d194.png

执行的sql语句以及执行的查询结果

执行的sql语句select * from tbl_dept a right join tbl_emp b on a.id=b.deptId;

查询结果

8dcadd915e7a188217db66cc7a3bbf78.png

左连接

左连接文氏图

072ca55aafc0b1ccef7aaa92a1b7e9aa.png

执行的sql语句以及执行的查询结果

执行的sql语句elect * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;

查询结果

1fddf5ace348d7aaac9daa3bdc0d9bfc.png

右连接

右连接文氏图

b5378ee3739e072e2d3cc23c777df8bc.png

执行的sql语句以及执行的查询结果

执行的sql语句select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null;

查询结果

81650763ea59e434d8cc822c74010cd3.png

全连接

全连接文氏图

0acb3522c9d60d25109187cb621ebff0.png

执行的sql语句以及执行的查询结果

执行的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;

查询结果

db1da3e8f242bb5392b68a991fba24c5.png

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

文氏图

ea31b936cc661bd6443fa08b43d66eff.png

执行的sql语句以及执行的查询结果

执行的sql语句select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null union select * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;

查询结果

9a87a64040da4afd910c99fc9d4bdacb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值