User-Profile-Image
hankin
  • 5
  • Java
  • Kotlin
  • Spring
  • Web
  • SQL
  • MegaData
  • More
  • Experience
  • Enamiĝu al vi
  • 分类
    • Zuul
    • Zookeeper
    • XML
    • WebSocket
    • Web Notes
    • Web
    • Vue
    • Thymeleaf
    • SQL Server
    • SQL Notes
    • SQL
    • SpringSecurity
    • SpringMVC
    • SpringJPA
    • SpringCloud
    • SpringBoot
    • Spring Notes
    • Spring
    • Servlet
    • Ribbon
    • Redis
    • RabbitMQ
    • Python
    • PostgreSQL
    • OAuth2
    • NOSQL
    • Netty
    • MySQL
    • MyBatis
    • More
    • MinIO
    • MegaData
    • Maven
    • LoadBalancer
    • Kotlin Notes
    • Kotlin
    • Kafka
    • jQuery
    • JavaScript
    • Java Notes
    • Java
    • Hystrix
    • Git
    • Gateway
    • Freemarker
    • Feign
    • Eureka
    • ElasticSearch
    • Docker
    • Consul
    • Ajax
    • ActiveMQ
  • 页面
    • 归档
    • 摘要
    • 杂图
    • 问题随笔
  • 友链
    • Spring Cloud Alibaba
    • Spring Cloud Alibaba - 指南
    • Spring Cloud
    • Nacos
    • Docker
    • ElasticSearch
    • Kotlin中文版
    • Kotlin易百
    • KotlinWeb3
    • KotlinNhooo
    • 前端开源搜索
    • Ktorm ORM
    • Ktorm-KSP
    • Ebean ORM
    • Maven
    • 江南一点雨
    • 江南国际站
    • 设计模式
    • 熊猫大佬
    • java学习
    • kotlin函数查询
    • Istio 服务网格
    • istio
    • Ktor 异步 Web 框架
    • PostGis
    • kuangstudy
    • 源码地图
    • it教程吧
    • Arthas-JVM调优
    • Electron
    • bugstack虫洞栈
    • github大佬宝典
    • Sa-Token
    • 前端技术胖
    • bennyhuo-Kt大佬
    • Rickiyang博客
    • 李大辉大佬博客
    • KOIN
    • SQLDelight
    • Exposed-Kt-ORM
    • Javalin—Web 框架
    • http4k—HTTP包
    • 爱威尔大佬
    • 小土豆
    • 小胖哥安全框架
    • 负雪明烛刷题
    • Kotlin-FP-Arrow
    • Lua参考手册
    • 美团文章
    • Java 全栈知识体系
    • 尼恩架构师学习
    • 现代 JavaScript 教程
    • GO相关文档
    • Go学习导航
    • GoCN社区
    • GO极客兔兔-案例
    • 讯飞星火GPT
    • Hollis博客
    • PostgreSQL德哥
    • 优质博客推荐
    • 半兽人大佬
    • 系列教程
    • PostgreSQL文章
    • 云原生资料库
    • 并发博客大佬
Help?

Please contact us on our email for need any support

Support
    首页   ›   SQL   ›   MySQL   ›   正文
MySQL

Mysql—多表连接查询

2020-04-08 23:32:18
1147  0 0
参考目录 隐藏
1) 内连接 – INNER JOIN:
2) 左外连接 – LEFT OUTER JOIN:
3) 右外连接 – RIGHT OUTER JOIN:
4) 全连接 – UNION:
5) 交叉连接 – CROSS JOIN:

阅读完需:约 3 分钟

在一般的业务情况下,我们大致将 Mysql多表连接 分为如下几种:

内连接:INNER JOIN – 可简写为 JOIN;
左外连接:LEFT OUTER JOIN – 可简写为 LEFT JOIN;
右外连接:RIGHT OUTER JOIN – 可简写为 RIGHT JOIN;
全连接:使用 UNION 完成;
交叉连接:CROSS JOIN – 也称为 笛卡儿乘积连接,大抵不使用;

内连接 – INNER JOIN:

SQL 语句:

SELECT * 
FROM a 
INNER JOIN b ON(a.id = b.id)

解释:
查询出 a表 和 b表 的 交集;

左外连接 – LEFT OUTER JOIN:

SQL 语句:

SELECT * 
FROM a 
LEFT OUTER JOIN b ON(a.id = b.id)

解释:
查询出 左边表 -- 即a表 的完全集,而 右边表 -- 即b表 中匹配的则有值,没匹配的以 null 值取代;

右外连接 – RIGHT OUTER JOIN:

SQL 语句:

SELECT * 
FROM a 
RIGHT OUTER JOIN b ON(a.id = b.id)

解释:
与 左外连接相反 ,查询出 右边表 -- 即b表 的完全集,而 左边表 -- 即a表 中匹配的则有值,没匹配的以 null 值取代;

全连接 – UNION:

事实上由于 Mysql 不支持 FULL JOIN,所以我们将使用 UNION 来完成 全连接;

SQL 语句:

SELECT * FROM a LEFT OUTER JOIN b ON(a.id = b.id) 
UNION 
SELECT * FROM a RIGHT OUTER JOIN b ON(a.id = b.id)

解释:
全连接 是 左右外连接 的并集,连接表包含被连接的表的所有记录,如果缺少匹配的记录,,则以 null 取代;

交叉连接 – CROSS JOIN:

CROSS JOIN 子句从连接的表返回行的 笛卡儿乘积;

假设使用 CROSS JOIN 连接两个表;
结果集将包括两个表中的所有行,其中结果集中的每一行都是第一个表中的行与第二个表中的行的组合;
当连接的表之间没有关系时,会使用这种情况;

要特别注意的是,如果每个表有 1000 行,那么结果集中就有 1000 x 1000 = 1,000,000 行,那么数据量是非常巨大的;

SQL 语句:

SELECT *
FROM a
CROSS JOIN b

/**
 * 注意: 
 * 与 INNER JOIN 或 [LEFT, RIGHT] OUTER JOIN 子句不同
 * CROSS JOIN 连接没有 ON 条件
 */

添加了 WHERE 子句后,如果 a表 和 b表 有关系,则 CROSS JOIN 的工作方式与 INNER JOIN 类似,SQL 语句为:

SELECT *
FROM a 
CROSS JOIN b 
WHERE a.id = b.id

如本文“对您有用”,欢迎随意打赏作者,让我们坚持创作!

0 打赏
Enamiĝu al vi
不要为明天忧虑.因为明天自有明天的忧虑.一天的难处一天当就够了。
543文章 68评论 294点赞 593821浏览

随机文章
SpringBoot—自定义参数解析器
3年前
SpringBoot—@Bean解释
5年前
Java—定时任务—HashedWheelTimer时间轮
2年前
SpringBoot—应用监控之Spring Boot Actuator
5年前
Docker—DockerFile(五)
5年前
博客统计
  • 日志总数:543 篇
  • 评论数目:68 条
  • 建站日期:2020-03-06
  • 运行天数:1927 天
  • 标签总数:23 个
  • 最后更新:2024-12-20
Copyright © 2025 网站备案号: 浙ICP备20017730号 身体没有灵魂是死的,信心没有行为也是死的。
主页
页面
  • 归档
  • 摘要
  • 杂图
  • 问题随笔
博主
Enamiĝu al vi
Enamiĝu al vi 管理员
To be, or not to be
543 文章 68 评论 593821 浏览
测试
测试
看板娘
赞赏作者

请通过微信、支付宝 APP 扫一扫

感谢您对作者的支持!

 支付宝 微信支付