MySQL基础之多表关联查询

2.7 多表关联查询

我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 MySQL JOIN 在两个或多个表中查询数据。你可以在 SELECT , UPDATE DELETE 语句中使用 MySQL JOIN 来联合多表查询。

JOIN 按照功能大致分为如下三类:

  1. CROSS JOIN (交叉连接)
  2. INNER JOIN (内连接或等值连接)。
  3. OUTER JOIN (外连接)

 

2.7.1 交叉连接

关键字:

CROSS JOIN

交叉连接也叫笛卡尔积连接。笛卡尔积是指在数学中,两个集合X Y 的笛卡尓积( Cartesian

product ),又称直积,表示为X*Y ,第一个对象是X 的成员而第二个对象是Y 的所有可能有序对的其中一个成员。

交叉连接的表现:

行数相乘、列数相加

 

隐式交叉连接:

显式交叉连接:

SELECT * FROM A CROSS JOIN B

 

2.7.2 内连接

关键字:

INNER JOIN
内连接也叫等值连接,内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。

 

隐式内连接:

显式内连接:

SELECT * FROM A INNER JOIN B ON A.id = B.id

 

2.7.3 外连接

外联接可以是左向外联接、右向外联接或完整外部联接。也就是说外连接又分为:

左外连接、右外连接、全外连接

外连接需要有主表或者保留表的概念。

FROM 子句中指定外连接时,可以由下列几组关键字中的一组指定:

左外连接:

LEFT JOIN 或者 LEFT OUTER JOIN

 

右外连接:

RIGHT JOIN 或者 RIGHT OUTER JOIN

 

全外连接(MySQL不支持):

FULL JOIN FULL OUTER JOIN

SELECT * FROM A FULL JOIN B ON A.id = B.id

 

外连接总结

  1. 通过业务需求,分析主从表
  2. 如果使用LEFT JOIN ,则主表在它左边
  3. 如果使用RIGHT JOIN ,则主表在它右边
  4. 查询结果以主表为主,从表记录匹配不到,则补null

 

耐心的读者可以继续观看我下一篇文章:待续

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值