当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
随机推荐
mysql创建表
弹性盒子flex属性
运维理想和现实,你是?
SSM网上商城购物系统(前台+后台)
Double Strings (don't always forget substr)
LeetCode:746. 使用最小花费爬楼梯【动态规划】
7-40 奥运排行榜 (25 分)多项排序
构造方法、方法重载、全局变量与局部变量
Webshell upload method
精益思想如何加速企业的全局价值流动?
RHCSA第三天
STM32——LCD—TFTLCD原理与配置介绍
线性代数学习笔记1:何为线性代数
MySql中的like和in走不走索引
LeetCode:1374. 生成每种字符都是奇数个的字符串【签到题】
离线数仓-用户行为采集
HCIP-第十天-BGP综合实验
线性代数学习笔记2-1:向量和向量组、线性相关性(张成空间的概念)
删库后!除了跑路还能干什么?
线性代数学习笔记3-2:矩阵乘法的理解