当前位置:网站首页>MySQL中JOIN的用法
MySQL中JOIN的用法
2022-07-31 10:09:00 【xiaoweiwei99】
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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
随机推荐
LeetCode二叉树系列——101.对称二叉树
可以用聚酯树脂将接线板密封接线盒吗?(接线盒灌封胶用哪种树脂)
单点登录原理及实现方式
自定义v-drag指令(横向拖拽滚动)
Progressive Web App(PWA)
GCD简单了解
Build finished with errors/Executable Not Found
Web系统常见安全漏洞介绍及解决方案-CSRF攻击
学习笔记——七周成为数据分析师《第二周:业务》:业务分析框架
感情危机,朋友的网恋女友要和他闹分手,问我怎么办
如何在 TiDB Cloud 上使用 Databricks 进行数据分析 | TiDB Cloud 使用指南
loadrunner-controller-手动场景Schedule配置
Use turtle to draw buttons
Module eight
djangoWeb应用框架+MySQL数据4
【LeetCode】383.赎金信
【职场杂谈】售前工程师岗位的理解杂谈
【LeetCode】36.有效的数独
Add a shuffling effect to every pie
模块八