|
1
5
它们在逻辑上是等价的,应该产生相同的结果。然而,最后一个是首选的,因为它更正确地说明了查询的语义,即“连接表t1和t2”。 WHERE子句应用于联接的“筛选”结果-例如。
|
|
2
2
是的,正如其他人所说,所有这些查询的结果都是相同的。 FWIW,在对两个表中相同的列名进行相等联接时,也可以使用此速记语法:
就优化而言,它是
应该
同样要优化。也就是说,RDBMS应该足够智能,能够分析
对于MySQL,join和where(某种程度上)一起计算。试用
|
|
|
3
2
对于内部联接,它在逻辑上没有区别,优化器应该生成相同的计划。但对于外部联接,是否将条件置于WHERE或FROM中变得很重要。。。JOIN子句。这是因为FROM和ON子句在WHERE子句之前处理: ANSI SQL logical query processing http://www.sqlmag.com/Files/09/94378/Figure_01.jpg |
|
|
4
1
它们在逻辑上是等价的。但是,定义联接条件的位置会对应用where子句的临时表中使用的记录数量产生影响。就是, 如果表t1、t2和t3各有10条记录,
结果是三个表记录排列的1000条记录,然后应用where子句。 对于
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |