【发布时间】:2020-12-25 14:28:22
【问题描述】:
我使用内连接连接了 2 个表,但 2 个表具有相同名称的列。我将查询设为子查询以仅使用所需的列。如果我使用子查询会导致速度下降吗?
注意:我使用了翻译
Select
*
From
(Select
t1.Id, ...
From
Table1 as t1
left join
Table2 as t2 on t1.Id = t2.ParentId
--Where
--Id = 123 This Line. Error : Ambiguous column name 'Id'.
) as Foo
where
Id = 123
【问题讨论】:
-
嗯,您显然知道如何使用别名和限定列标识符,那么为什么不在
WHERE子句中这样做来解决歧义呢?对问题:检查计划。但我认为优化器很有可能将WHERE子句向下推,并且没有性能损失。
标签: sql sql-server subquery left-join query-optimization