所以发帖 详细介绍了有关派生与临时表的表现中的一些好处。

除性能外,存在哪种情况,派生表不合适。

每个帖子的一个答案与示例有所帮助。

有帮助吗?

解决方案

我宁愿做一个 自加入 在临时表上,而不是派生表。

CREATE TEMPORARY TABLE foo AS SELECT ...;

SELECT ... FROM foo f1 JOIN foo f2 ON ...conditions...;

与使用派生表,您必须在其中编写整个查询两次:

SELECT ... 
FROM (SELECT ...)
JOIN (SELECT ...) ON ...conditions...;

但是另一个解决方案是使用 通用表表达式 与派生表略有不同:

WITH foo AS (SELECT ...)
SELECT ... FROM foo f1 JOIN foo f2 ON ...conditions...;

前提是您使用支持该语法的数据库(Microsoft,Oracle,IBM,PostgreSQL)。

其他提示

范围可能是一个。我认为可以使其他交易 /流程等可以访问临时表。派生表仅限于声明的块。

如果您必须访问临时表中的数据 多个查询 避免重复生成温度数据可能会降低成本:

CREATE TEMPORARY TABLE foo AS SELECT ...;

SELECT ... FROM foo WHERE ...conditions...;

-- sometime later

SELECT ... FROM foo WHERE ...different conditions...;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top