mysql 链式查询_建议收藏!这份MySQL 连接查询超全详解送给你

本文详细介绍了MySQL的连接查询,包括连接类型(如内连接、外连接)、连接关键字(on和using)、执行顺序以及连接算法(Nested Loop Join)。重点讨论了如何优化连接查询,如增加连接条件、选择合适的驱动表、利用索引以及调整join_buffer_size。此外,还解答了外连接中的一些常见问题。
摘要由CSDN通过智能技术生成

| 作者肖泽凡,腾讯TEG研发管理部小小后台攻城狮一枚,负责腾讯敏捷产品研发平台TAPD的基础功能的开发和维护,热爱技术,喜欢分享,文章首次发表于SegmentFault,博客名“X先生”,欢迎与我交流~在数据库中join操作被称为连接,作用是能连接多个表的数据(通过连接条件),从多个表中获取数据合并在一起作为结果集返回给客户端。例如:

表A:

idnameage1A18

2B19

3C20

表B:

iduidgender11F

22M

通过连接可以获取到合并两个表的数据:

select A.*,B.gender from A left join B on A.id=B.uid

idnameagegender1A18F

2B19M

3C20null

连接关键字

连接两个表我们可以用两个关键字:on,using。on可以指定具体条件,using则指定相同名字和数据类型的列作为等值判断的条件,多个则通过逗号隔开。

如下:

on: select * from A join B on A.id=B.id and B.name=''

using: select * from A join B using(id,name) = select * from A join B on A.id=B.id and A.name=B.name

连接类型

一、内连接

内连接和交叉连接

1. 语法:A join | inner join | cross join B

2. 表现:A和B满足连接条件记录的交集,如果没有连接条件,则是A和B的笛卡尔积

3. 特点:在MySQL中,cross join,inner join和join所实现的功能是一样的。因此在MySQL的官方文档中,指明了三者是等价的关系。

隐式连接

1. 语法:from A,B,C

2. 表现:相当于无法使用on和using的join

3. 特点:逗号是隐式连接运算符。隐式连接是SQL92

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值