gpt4 book ai didi

mysql - 比较顺序在连接查询中是否重要?

转载 作者:行者123 更新时间:2023-11-29 06:23:26 27 4
gpt4 key购买 nike

我通常按如下方式编写连接查询:

Select 'field' from 'table' join 'references' on 'table'.'id' = 'references'.'reference'

现在我突然想知道,您在 'table'.'id' = 'references'.'reference' 上执行的顺序是否对执行速度有影响?

我主要使用 sqlserver、mysql 和 sqlite,我可以想象这三者可能会有不同的实现,如果有什么不同的话。

所以基本上可以归结为:

on 'table'.'id' = 'references'.'reference' 不同于 on 'references'.'reference' = 'table'.'id'

这个问题纯粹出于好奇,我想知道它是如何处理的,以便我更好地理解它。

最佳答案

如果你写 SQL 语句,执行上没有区别

Select 'field' 
from 'table'
join 'references'
on 'table'.'id' = 'references'.'reference'

Select 'field' 
from 'table'
join 'references'
on 'references'.'reference' = 'table'.'id'

您也可以将其写成交叉连接(仅适用于内部连接)

Select 'field' 
from 'table'
cross join 'references'
where 'table'.'id' = 'references'.'reference'

我不会使用第三个示例来进行内部联接。但它解释说,如果您考虑逻辑表达式,它对相等连接没有影响。当然,如果您在条件 x > y 中有以下比较那么您必须将运算符更改为 y < x

关于mysql - 比较顺序在连接查询中是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32305778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com