我对混淆如何与连接一起工作感到困惑。经过一些Google搜索后,我发现使用CTE可以获得我想要的行为,但不清楚为什么我的初始尝试失败。加入别名SQL Server
总之 - 为什么会发生这种工作:
WITH C AS
(
SELECT
*
FROM
dbo.Table1 as A
INNER JOIN
dbo.Table2 as B ON A.Col1 = B.Col1
)
SELECT C.Col2
FROM C;
但是这不?
SELECT
C.Col2
FROM
(dbo.Table1 as A
INNER JOIN
dbo.Table2 as B ON A.Col1 = B.Col1) as C;
你错过了“SELECT FROM”之前'dbo.Table1' –
Anton
是的......他们不一样 - CTE有一个选择,而子表没有。 –