【问题标题】:difference between table joining ways [duplicate]表连接方式之间的区别[重复]
【发布时间】:2012-12-23 10:07:52
【问题描述】:

可能重复:
SQL join: where clause vs. on clause

下表的连接方式有什么区别 哪个更适合查询优化。

 SELECT SP.*, S.SNAME, S.STATUS, S.CITY
 FROM S INNER JOIN SP 
 ON S.SNO = SP.SNO;

 SELECT SP.*, S.SNAME, S.STATUS, S.CITY
 FROM S, SP 
 WHERE S.SNO = SP.SNO;

【问题讨论】:

  • 一旦你想使用OUTER 连接,你应该使用第一种样式,然后为了保持一致性,你可能应该对INNER 连接使用相同的样式。

标签: sql query-optimization


【解决方案1】:

查询优化器会将它们视为等效的 - 所有主要数据库引擎的性能没有差异。

从可读性和风格的角度来看,使用显式连接语法通常是首选 - 无论您做什么,都要遵守约定并坚持下去!

【讨论】:

    【解决方案2】:

    这里有一点要记住

    定义索引的列应该是on子句中的第一个有一点区别

    【讨论】:

    • 这通常不是真的。我们不知道 OP 使用的是什么 RDBMS,但任何值得称道的 RDBMS 都能够重新排列谓词以最有效的方式评估它们。
    • 如果 on 子句中的两个列都被索引,它会快速选择数据
    猜你喜欢
    • 2023-03-15
    • 2012-09-02
    • 2011-07-14
    • 2014-05-17
    • 2011-06-10
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多