有时我需要将同一个表视为两个单独的表。解决方案是什么?
答案 0 :(得分:9)
您可以参考,只需确保使用表别名
select a.EmployeeName,b.EmployeeName as Manager
from Employees A
join Employees B on a.Mgr_id=B.Id
答案 1 :(得分:6)
在SQL中使用类似变量名的别名:
select
A.Id,
A.Name,
B.Id as SpouseId,
B.Name as SpouseName
from
People A
join People B on A.Spouse = B.id
答案 2 :(得分:2)
使用别名:
SELECT t1.col1, t2.col3
FROM tbl t1
INNER JOIN tbl t2
ON t1.col1 = t2.col2
答案 3 :(得分:2)
Alias是最明显的解决方案
SELECT * FROM x1 AS x,y1 AS y
但是,如果表是查询的结果,则公用表表达式非常有用
;WITH ctx AS
( select * from z)
SELECT y.* FROM ctx AS c1,ctx AS c2
第三个解决方案 - 适用于您的查询持续很长时间 - 是临时表:
SELECT *
INTO #monkey
FROM chimpanzee
SELECT * FROM #monkey m1,#monkey m2
DROP TABLE #MONKEY
请注意,公用表表达式仅适用于一个查询(查询后面的查询),临时表可用于整个批处理。