Sql 左连接差分

Sql 左连接差分,sql,Sql,与此不同的是: SELECT * FROM A a LEFT JOIN B b on a.value=b.value 为此: SELECT * FROM A a LEFT JOIN B b on b.value=a.value 绝对没有区别(除了款式) 我更喜欢第二版): 因为它更具逻辑性、可读性,并且遵循广泛使用和首选的风格: if (some_variable == some_constant) 当在表B中进行比较时,a.value实际上是一个常量 另一方面(即第一个版本)对我来说就像

与此不同的是:

SELECT * FROM A a LEFT JOIN B b on a.value=b.value
为此:

SELECT * FROM A a LEFT JOIN B b on b.value=a.value

绝对没有区别(除了款式)

我更喜欢第二版):

因为它更具逻辑性、可读性,并且遵循广泛使用和首选的风格:

if (some_variable == some_constant)
当在表
B
中进行比较时,a.value实际上是一个常量


另一方面(即第一个版本)对我来说就像是一个错误,尽管它的使用非常普遍。

除了风格之外,没有任何区别

我更喜欢第二版):

因为它更具逻辑性、可读性,并且遵循广泛使用和首选的风格:

if (some_variable == some_constant)
当在表
B
中进行比较时,a.value实际上是一个常量


另一种方式(即第一版)对我来说就像是一个错误,尽管它的使用很普遍。

为什么不在数据库中测试呢?从功能上讲,这两个查询没有区别。@Jacky。在一个数据库中进行一次测试并不能确定这两个结构是否等效(好吧,如果它们不是等效的,它会解决,但那是另一回事)。@Jacky是的,我尝试过,有时输出结果相同,有时不相同,当我尝试Pentaho时,它总是不同的为什么不在数据库中进行测试?从功能上讲,这两个查询没有区别。@Jacky。在一个数据库中进行一次测试并不能确定这两个构造是否等效(如果它们不等效,则可以解决问题,但那是另一回事)。@Jacky是的,我尝试过,有时输出结果相同,有时不相同,当我尝试Pentaho时,结果总是一样的different@Tim但它回答了这个问题,这是一个有效的问题,因为SQL是古怪的,可以想象它会带来不同。我的猜测是底层代码可能不完全相同,但性能方面并不重要。但是,我同意你尤达的评论:-)@Bohemian-yap,和蒂姆一样。我同意你的Yoda条件评论,但我不知道为什么有时该查询的结果会不同。@rio对你的问题的添加是一个不同的问题,因此请将其作为一个新问题提问。@Tim但它回答了问题,这是一个有效的问题,因为SQL是古怪的,可以想象它会带来不同。我的猜测是底层代码可能不完全相同,但性能方面并不重要。但是,我同意你尤达的评论:-)@Bohemian-yap,和蒂姆一样。我同意你对尤达条件的评论,但我不知道为什么有时候这个问题的结果会不同。@rio对你的问题的补充是一个不同的问题,所以请作为一个新问题提问。