【发布时间】:2015-12-11 20:55:13
【问题描述】:
Way1:
Select * from tableA inner join tableB
on tableA.aid = tableB.aid
where a.condA = xx
AND a.condB = xx
AND a.condC = xx
Way2:
Select * from tableA inner join tableB
on tableA.aid = tableB.aid
AND a.condA = xx
AND a.condB = xx
AND a.condC = xx
从上面的语法来看,在术语或性能上有什么明显的区别吗?
【问题讨论】:
-
检查执行计划,就是这么简单。查询优化器也可以为两者生成相同的计划,但始终取决于它。
-
请注意,如果您使用
left join代替,两个查询的结果会有所不同。 -
您可以在查询下拉列表中启用执行计划。运行查询后,它会向您显示完成的每个操作的计算成本,当您将鼠标悬停在图标上时会显示更多详细信息。
-
@juergend:左连接与内连接不同。 (您也可以使用 where 语法实现外部(左)连接,尽管每个 SQL 方言不同。(WHERE
*= )
标签: sql sql-server