SQL 查询对我来说相对较新。开始学习同样的。 我有一个问题。
是否可以对临时表进行自连接? 如果是的话,请举个例子。
预先感谢您对此提供的任何可能的帮助。
在 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
Mysql 不允许临时表上的自连接。它失败并出现错误:“无法重新打开表”
看到这个:https://dev.mysql.com/doc/refman/8.0/en/temporary-table-problems.html
该限制可防止在同一查询中多次引用同一临时表。但是,您可以在不同的查询中引用该表。因此,您可以通过创建临时表的第二个实例来解决此限制。
create temporary table t2(...);
insert into t2
select * from t1;
现在您可以加入
t1
和t2
。