![]() |
2
2
回答这个问题的最佳方法可能是查看数据库如何在内部处理查询。如果您在SQL Server上,请使用探查器查看每个查询执行了多少次读取等操作,并使用查询计划查看通过数据执行的路径。统计、倾斜等也很可能发挥作用。 |
![]() |
3
2
第一个查询不生成完整的外部联接(即左联接和右联接的并集)。本质上,除非有一些[内部]SQL解析器特定的优化,否则这两个查询是相等的。 |
![]() |
4
1
就我个人而言,我永远不会使用第一种语法。它的性能可能是相同的,但维护起来更困难,而且在事情变得复杂时更容易发生意外的交叉连接。如果您错过了一个ON条件,它将无法通过语法检查,如果您错过了一个与ON条件等价的WHERE条件,它将愉快地进行交叉连接。看在上帝的份上,它的语法已经过时17年了! 此外,旧语法中的左连接和右连接语法在SQL Server中被破坏,并且并不总是返回正确的结果(有时它可以将结果作为一个交叉连接而不是外部连接进行交互),并且它们已被弃用,在下一个版本中根本不可用。如果您需要将其中一个查询更改为使用外部联接,那么您可以尝试进行一次主要的重写,因为尝试混合这两种语法尤其糟糕。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 3 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 4 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 4 月前 |
![]() |
Sax · 规范化Google表格(第一步) 4 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |