iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】
  • 656
分享到

【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】

sqlmysql数据库 2023-09-17 22:09:28 656人浏览 泡泡鱼
摘要

文章目录 连接七种JOIN介绍练习建表+存储数据笛卡尔积内连接左连接右连接A表独有B表独有全连接实现方式一:左连接+右连接+公共部分去重实现方式二:左连接+B独有 A独有+B独有

文章目录

连接

七种JOIN介绍

图形连接方式说明sql
https://img-blog.csdnimg.cn/bcd7dd0ad8cf440da09d71a38b89944a.png内连接共有部分SELECT FROM TableA A INNER JOIN TableB B ON A.Key = B.Key;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQHmQOL5-1686824977738)(assets/1686824851787-1.png)]左连接A表独有+共有部分SELECT FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key;
在这里插入图片描述右连接B表独有+共有部分SELECT FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hVV4XXtO-1686824977738)(assets/1686824851787-3.png)]A的独有SELECT FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL;
在这里插入图片描述B的独有SELECT FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T5XPhb8d-1686824977739)(assets/1686824851787-5.png)]全连接A的独有+共有部分+B的独有SELECT FROM TableA A FULL OUTER JOIN TableB B ON A.Key = B.Key; Mysql不支持FULL OUTER JOIN这种语法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w50kiG6r-1686824977739)(assets/1686824851787-6.png)]A独有+B独有SELECT FROM TableA A FULL OUTER JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL OR B.Key IS NULL; mysql不支持FULL OUTER 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);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qUHuXxvA-1686824977740)(assets/1686824851787-7.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8stgnQnE-1686824977740)(assets/1686824851788-8.png)]

笛卡尔积

select * from tbl_emp,tbl_dept;

5条数据8条数据两两组合,一共40条,结果如下

"id"       "name"     "deptId"    "id"      "deptName"   "locAdd""1"        "z3"        "1"        "5"        "FD"        "15""1"        "z3"        "1"        "4"        "MIS"        "14""1"        "z3"        "1"        "3"        "MK"        "13""1"        "z3"        "1"        "2"        "HR"        "12""1"        "z3"        "1"        "1"        "RD"        "11""2"        "z4"        "1"        "5"        "FD"        "15""2"        "z4"        "1"        "4"        "MIS"        "14""2"        "z4"        "1"        "3"        "MK"        "13""2"        "z4"        "1"        "2"        "HR"        "12""2"        "z4"        "1"        "1"        "RD"        "11""3"        "z5"        "1"        "5"        "FD"        "15""3"        "z5"        "1"        "4"        "MIS"        "14""3"        "z5"        "1"        "3"        "MK"        "13""3"        "z5"        "1"        "2"        "HR"        "12""3"        "z5"        "1"        "1"        "RD"        "11""4"        "w5"        "2"        "5"        "FD"        "15""4"        "w5"        "2"        "4"        "MIS"        "14""4"        "w5"        "2"        "3"        "MK"        "13""4"        "w5"        "2"        "2"        "HR"        "12""4"        "w5"        "2"        "1"        "RD"        "11""5"        "w6"        "2"        "5"        "FD"        "15""5"        "w6"        "2"        "4"        "MIS"        "14""5"        "w6"        "2"        "3"        "MK"        "13""5"        "w6"        "2"        "2"        "HR"        "12""5"        "w6"        "2"        "1"        "RD"        "11""6"        "s7"        "3"        "5"        "FD"        "15""6"        "s7"        "3"        "4"        "MIS"        "14""6"        "s7"        "3"        "3"        "MK"        "13""6"        "s7"        "3"        "2"        "HR"        "12""6"        "s7"        "3"        "1"        "RD"        "11""7"        "s8"        "4"        "5"        "FD"        "15""7"        "s8"        "4"        "4"        "MIS"        "14""7"        "s8"        "4"        "3"        "MK"        "13""7"        "s8"        "4"        "2"        "HR"        "12""7"        "s8"        "4"        "1"        "RD"        "11""8"        "s9"        "51"        "5"        "FD"        "15""8"        "s9"        "51"        "4"        "MIS"        "14""8"        "s9"        "51"        "3"        "MK"        "13""8"        "s9"        "51"        "2"        "HR"        "12""8"        "s9"        "51"        "1"        "RD"        "11"

内连接

SELECT * FROM tbl_emp a INNER JOIN tbl_dept b ON a.deptId = b.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aZ35ILZ2-1686824977740)(assets/1686824851788-9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sNac9oI7-1686824977741)(assets/1686824851788-10.png)]

左连接

SELECT * FROM tbl_emp a LEFT JOIN tbl_dept b ON a.deptId = b.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-veaxxZmd-1686824977741)(assets/1686824851788-11.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WbjW4vGV-1686824977741)(assets/1686824851788-12.png)]

右连接

SELECT * FROM tbl_emp a RIGHT JOIN tbl_dept b ON a.deptId = b.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u96RObbU-1686824977741)(assets/1686824851788-13.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q9huZfmw-1686824977741)(assets/1686824851788-14.png)]

A表独有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hR7svfpX-1686824977742)(assets/1686824851788-15.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrFmCxzC-1686824977742)(assets/1686824851788-16.png)]

SELECT * FROM tbl_emp a LEFT JOIN tbl_dept b ON a.deptId = b.id WHERE b.id is null;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2KKU8i1R-1686824977742)(assets/1686824851789-17.png)]

B表独有

SELECT * FROM tbl_emp a RIGHT JOIN tbl_dept b ON a.deptId = b.id WHERE a.deptId is null;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1FUBJoXE-1686824977742)(assets/1686824851789-18.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29w3Q3Vf-1686824977742)(assets/1686824851789-19.png)]

全连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UrTh9p5N-1686824977743)(assets/1686824851789-20.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jtIDkl7R-1686824977743)(assets/1686824851789-21.png)]

尝试换一种方式实现:A的独有+共有+B的独有

实现方式一:左连接+右连接+公共部分去重

SELECT * FROM tbl_emp a LEFT JOIN tbl_dept b ON a.deptId = b.id UNION SELECT * FROM tbl_emp a RIGHT JOIN tbl_dept b ON a.deptId = b.id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LkhQ6tcO-1686824977743)(assets/1686824851789-22.png)]

实现方式二:左连接+B独有

SELECT * FROM tbl_emp a LEFT JOIN tbl_dept b ON a.deptId = b.id UNioN SELECT * FROM tbl_emp a RIGHT JOIN tbl_dept b ON a.deptId = b.id WHERE a.deptId is null;

A独有+B独有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KdkdloFq-1686824977744)(assets/1686824851789-23.png)]

SELECT * FROM tbl_emp a LEFT JOIN tbl_dept b ON a.deptId = b.id WHERE b.id is null UNION SELECT * FROM tbl_emp a RIGHT JOIN tbl_dept b ON a.deptId = b.id WHERE a.deptId is null;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9dcf7yHP-1686824977744)(assets/1686824851789-24.png)]

文章说明

本文章为本人学习尚硅谷的学习笔记,文章中大部分内容来源于尚硅谷视频(点击学习尚硅谷相关课程),也有部分内容来自于自己的思考,发布文章是想帮助其他学习的人更方便地整理自己的笔记或者直接通过文章学习相关知识,如有侵权请联系删除,最后对尚硅谷的优质课程表示感谢。

来源地址:https://blog.csdn.net/laodanqiu/article/details/131233741

您可能感兴趣的文档:

--结束END--

本文标题: 【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】

本文链接: https://www.lsjlt.com/news/411395.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作