mysql如何关联_MySQL如何执行关联查询

MySQL中‘关联(join)’ 一词包含的意义比一般意义上理解的要更广泛。总的来说,MySQL认为任何一个查询都是一次‘关联’ --并不仅仅是一个查询需要到两个表的匹配才叫关联,索引在MySQL中,每一个查询,每一个片段(包括子查询,设置基于表单的select)都可能是关联。

所以,理解MySQL如何执行关联查询至关重要。我们先来看一个union 查询的例子。对于union查询,MySQL先将一系列的单个查询结果放到一个临时表中,然后再重新读出临时表数据来完成union查询。在MySQL的概念中,每个查询都是一次关联,所以读取结果的临时表也是一次关联。

当前MySQL关联执行的策略很简单:MySQL对任何关联都执行嵌套关联的操作,即MySQL在一个表中循环读出单条数据,然后在嵌套循环到下一个表中寻找匹配的行,依次下去,直到找到所有表中匹配的结果未知。然后根据各个表匹配的行,返回查询中需要的各个列。MySQL会尝试在最后一个关联表中找到所有匹配的行,如果最后一个关联表无法找到更多的行以后,MySQL会返回到上一层关联表,看是否能够找到更多的匹配记录,以此类推迭代执行。

原文:http://www.cnblogs.com/zhengyanqiu/p/5027833.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值