Mysql 如何将查询的输出存储到临时表中,并在新查询中使用该表?
我有一个MySQL查询,它使用3个表和2个内部联接。然后,我必须从这个查询输出中找到一个组的最大值。我无法将两者结合起来。我可以通过将第一个复杂查询的输出存储到某种临时表中,给它一个名称,然后在新查询中使用该表来解决这个问题吗?这将使代码更易于管理。谢谢您的帮助。这非常简单:Mysql 如何将查询的输出存储到临时表中,并在新查询中使用该表?,mysql,temp-tables,Mysql,Temp Tables,我有一个MySQL查询,它使用3个表和2个内部联接。然后,我必须从这个查询输出中找到一个组的最大值。我无法将两者结合起来。我可以通过将第一个复杂查询的输出存储到某种临时表中,给它一个名称,然后在新查询中使用该表来解决这个问题吗?这将使代码更易于管理。谢谢您的帮助。这非常简单: CREATE TEMPORARY TABLE tempname AS ( SELECT whatever, whatever FROM rawtable JOIN othertab
CREATE TEMPORARY TABLE tempname AS (
SELECT whatever, whatever
FROM rawtable
JOIN othertable ON this = that
)
连接关闭时,临时表将消失。临时表包含创建时捕获的数据
您还可以创建一个视图,如下所示
CREATE VIEW viewname AS (
SELECT whatever, whatever
FROM rawtable
JOIN othertable ON this = that
)
视图是永久对象(当连接关闭时它们不会消失),但在调用它们时它们会从基础表中检索数据。您是否尝试过创建临时表??您可以在一个查询中完成所有这一切提交到目前为止尝试过的内容。如果您想创建临时表,您可以,但2个内部联接并不需要临时表。对不起,您是否建议在这样的情况下使用mysql临时表()?@accounter简言之,不是。在通用mysql中,临时表几乎没有用,因为它们受到限制。MariaDB 10.2(MySQL fork)具有通用的表表达式,这是解决该问题的好方法。或者,使用视图避免子查询键入两次。