【问题标题】:Create UNION with one or more views in MySql在 MySql 中创建一个或多个视图的 UNION
【发布时间】:2019-05-06 14:58:13
【问题描述】:

我试图获得一个查询和一个视图或一个视图和一个视图的联合。但是在 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

【问题讨论】:

  • 样本数据和期望的结果真的很有帮助。 union all 听起来没什么用。
  • 您必须从视图中进行选择,而不能只是在联合之后将视图名称放入其中。
  • @GordonLinoff:期望的结果很大程度上取决于这两个查询之间的操作,另一个操作加上一些示例数据会使这个问题有点太长,问题会失去焦点。

标签: mysql sql view union union-all


【解决方案1】:

您需要从该视图中进行选择,例如

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;

【讨论】:

  • 谢谢,这太明显了!
猜你喜欢
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 1970-01-01
相关资源
最近更新 更多