Bootstrap

MySQL 7种JOIN

CREATE TABLE `tbl_emp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`deptId` int(11) DEFAULT NULL,
PRIMARY KEY (`id`) ,
KEY `fk_dept_id`(`deptId`)
)ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8;

CREATE TABLE `tbl_dept` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`deptName` varchar(30) DEFAULT NULL,
`locAdd` varchar(40) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = 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);
insert into tbl_emp(NAME,deptId) values('s9',51);

1.内连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqI74zsa-1634201938323)(7种join连接.assets/image-20211014163556189.png)]

select * from tbl_emp inner join tbl_dept on tbl_emp.deptId = tbl_dept.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CbwoniuH-1634201938325)(7种join连接.assets/image-20211014163525337.png)]

2.左外连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1tSMn3FV-1634201938326)(7种join连接.assets/image-20211014163616698.png)]

select * from tbl_emp left join tbl_dept on tbl_emp.deptId = tbl_dept.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZlOLybs-1634201938327)(7种join连接.assets/image-20211014163639715.png)]

3.右外连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9V5wvVMO-1634201938327)(7种join连接.assets/image-20211014163829331.png)]

select * from tbl_emp right join tbl_dept on tbl_emp.deptId = tbl_dept.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LvJ5pQmG-1634201938329)(7种join连接.assets/image-20211014163817467.png)]

4.A独有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6FpArib-1634201938329)(7种join连接.assets/image-20211014164237226.png)]

select * from tbl_emp left join tbl_dept on tbl_emp.deptId = tbl_dept.id where tbl_dept.id is null;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E0iItH25-1634201938329)(7种join连接.assets/image-20211014164133354.png)]

5.B独有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wkjDtFhl-1634201938330)(7种join连接.assets/image-20211014164303882.png)]

select * from tbl_emp right join tbl_dept on tbl_emp.deptId = tbl_dept.id where tbl_emp.deptId is null;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l5QEX511-1634201938330)(7种join连接.assets/image-20211014164421914.png)]

6.全有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XW3vNvHE-1634201938330)(7种join连接.assets/image-20211014164523483.png)]

MySQL不支持全连接!! 不能使用full outer join

使用union来完成,union作用:合并+去重

select * from tbl_emp left join tbl_dept on tbl_emp.deptId = tbl_dept.id
union
select * from tbl_emp right join tbl_dept on tbl_emp.deptId = tbl_dept.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TRhlTUI-1634201938331)(7种join连接.assets/image-20211014164931068.png)]

7.A独有与B独有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gNCbCgyo-1634201938331)(7种join连接.assets/image-20211014164543892.png)]

select * from tbl_emp left join tbl_dept on tbl_emp.deptId = tbl_dept.id where tbl_dept.id is null
union
select * from tbl_emp right join tbl_dept on tbl_emp.deptId = tbl_dept.id where tbl_emp.deptId is null;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CvPYt59L-1634201938331)(7种join连接.assets/image-20211014165402868.png)]

;