是否可以在SQL查询中对临时表进行Self Join

问题描述 投票:0回答:3

SQL 查询对我来说相对较新。开始学习同样的。 我有一个问题。

是否可以对临时表进行自连接? 如果是的话,请举个例子。

预先感谢您对此提供的任何可能的帮助。

sql temp-tables self-join
3个回答
2
投票

在 sql Server 中这是可能的。我有如下表

#tmpEmployee(Id Int, Ename Varchar(150), ManagerId INT)

我想显示包含 Id、EName、Manager 的结果,然后查询将是

SELECT t.Id, t.Ename, x.Ename [Manager] FROM #tmpEmployee t INNER JOIN #tmpEmployee x ON t.ManagerId = x.Id

1
投票

Mysql 不允许临时表上的自连接。它失败并出现错误:“无法重新打开表”

看到这个:https://dev.mysql.com/doc/refman/8.0/en/temporary-table-problems.html


0
投票

该限制可防止在同一查询中多次引用同一临时表。但是,您可以在不同的查询中引用该表。因此,您可以通过创建临时表的第二个实例来解决此限制。

create temporary table t2(...);

insert into t2 
select * from t1;

现在您可以加入

t1
t2

© www.soinside.com 2019 - 2024. All rights reserved.