MySQL派生表

MySQL派生表

派生表是查询结果组成的虚拟表。派生表是在外部查询的FROM子句中定义的,不需要手动创建。只要外部查询一结束,派生表也就不存在了。派生表可以简化查询,避免使用临时表。相比手动生成临时表性能更优越。
例如:
SELECT
    * 
FROM
    ( SELECT * FROM t1 ) tmp

如上所示,temp就是派生表。需要注意的是,MySQL派生表必须有别名。这与其他数据库不同,例如oracle数据库就不需要别名。如果没有别名,MySQL会报错

ERROR 1248 (42000): Every derived table must have its own alias

派生出来的表必须是一个有效的表,它有如下特征:

1、所有列必须要有名称,出现无列名的要重命名

2、列名称必须是要唯一,相同名称肯定是不允许的

3、不允许使用ORDER BY(除非指定了TOP)

 
原文地址:https://www.cnblogs.com/jkin/p/12843088.html