使用 MySql 中的一个或多个视图创建 UNION

Create UNION with one or more views in MySql

我正在尝试获取查询与视图或视图与视图的联合。但是在 MySql 中这样做会返回 ER_PARSE_ERROR.

假设我有一个名为 B_SAL 的视图,用于查看特定数据集在特定操作之前的状态。

   CREATE OR REPLACE VIEW B_SAL AS 
       SELECT * FROM EMP ORDER BY EMP.COMM;

在该操作之后我想获得 B_SALUNION ALL 和数据集的当前状态,在本例中为 EMP.

       (SELECT * FROM EMP ORDER BY EMP.COMM)
       UNION ALL
       B_SAL

您需要从该视图select,例如

SELECT * FROM EMP
UNION ALL
SELECT * FROM B_SAL;

但是上面的 union 不是很好的做法,因为我们是在做 SELECT *,而不是明确列出我们要使用的列。更好的版本看起来像这样:

SELECT col1, col2, col3 FROM EMP
UNION ALL
SELECT col1, col2, col3 FROM B_SAL;