[MYSQL]多表连接的原理

本文详细解析了MySQL中多表连接的原理,包括驱动表和被驱动表的概念,以及内连接和外连接的工作方式。通过实例展示了如何进行连接操作,并解释了ON子句和WHERE子句在连接查询中的作用。
摘要由CSDN通过智能技术生成

多表连接的方式

//from t1, t2 where . . .
SELECT * FROM 
t1, t2 
WHERE t1.m = t2.m and . . .;

//(inner) join t2 on . . .
SELECT column_name(s) FROM t1
INNER JOIN t2 
ON t1.m = t2.m and t1.m = 2 . . .;

//left join t2 on . . .
SELECT column_name(s) FROM t1
LEFT JOIN t2 
ON t1.m = t2.m

//right join t2 on . . .
SELECT column_name(s) FROM t1
RIGHT JOIN t2 
ON t1.m = t2.m

//full join t2 on . . .
SELECT column_name(s) FROM t1
FULL JOIN t2 
ON t1.m = t2.m and . . .

多表连接的原理

对于两个表连接操作,需要区分驱动表和被驱动表

  • 驱动表:第一个需要查询的表,执行查询的策略与普通单表查询一致;
  • 被驱动表:针对上一步骤中从驱动表产生的结果集中的每一条记录,需要分别到被驱动表中查找匹配的记录。

在上面的例子中,驱动表和被驱动表分别是:

1) from t1, t2 where . . .
驱动表: t1或t2	被驱动表: t1或t2

2) (inner) join t2 on . . .
驱动表: t1或t2	被驱动表: t1或t2

3) left join t2 on . . .
驱动表: t1	被驱动表: t2

4) right 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值