当前位置:网站首页>MySQL中JOIN的用法
MySQL中JOIN的用法
2022-08-02 03:18:00 【asdfadafd】
JOIN用于连表查询,主要有5种用法。下面分别演示这5种用法
随便建2张表,结构如下


字段col1用来使两张表有一个同名字段的(但其实没什么用,因为查询条件都需要用ON来指定,这里只是说明一下如果有相同的字段名也没什么影响)
一、笛卡尔积:CROSS JOIN
CROSS JOIN使两张表的所有字段直接进行笛卡尔积,假设表1有m条数据,表2有n条数据,则结果数量为m*n条
SELECT * FROM tab1 CROSS JOIN tab2
结果

二、内连接:INNER JOIN
内连接需要用ON来指定两张表需要比较的字段,最终结果只显示满足条件的数据
SELECT * FROM tab1 INNER JOIN tab2 ON tab1.id1 = tab2.id2
结果

注意到内连接只把满足ON条件的数据相连接,与笛卡尔积不同
三、左连接:LEFTJOIN
左连接可以看做在内连接的基础上,把左表中不满足ON条件的数据也显示出来,但结果中的右表部分中的数据为NULL
SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id1 = tab2.id2
结果

四、右连接:RIGHTJOIN
右连接就是与左连接完全相反
SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id1 = tab2.id2
结果

五、全连接:OUTERJOIN
全连接就是左连接和右连接的并集,但是MySQL中并不支持全连接的写法
SELECT * FROM tab1 OUTER JOIN tab2 ON tab1.id1 = tab2.id2
不过可以用UNION联合左连接和右连接的结果来代替
SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id1 = tab2.id2
UNION
SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id1 = tab2.id2
结果

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
随机推荐
ModuleNotFoundError No module named ‘xxx‘可能的解决方案大全
MySQL两阶段提交串讲
5.合宙Air32F103_LCD_key
源码构建LAMP环境-1
mysql8.0安装教程与配置(最详细)操作简单
自定义mvc框架复习(crud)
dropout
R16 Type II量化反馈码本的产生
bgp机房的动态路由和静态路由的区别
Chapter 10 聚类
Keil开发环境安装教程
Double Strings (别总忘记substr)
[详解C语言]一文带你玩转C语言小游戏---扫雷
day11--shell脚本
「PHP基础知识」空值(null)的使用
Kubernetes 基本概念
深度自编码网络的集成学习ICPS入侵检测模型
基于时延估计的动力型下肢假肢分段控制策略研究
弹性盒子flex属性
rem适配







![[详解C语言]一文带你玩转C语言小游戏---扫雷](/img/9f/3979ef063f10bd641111aa4f4d8b4e.png)
