在 MySql 中创建一个或多个视图的 UNION
Posted
技术标签:
【中文标题】在 MySql 中创建一个或多个视图的 UNION【英文标题】:Create UNION with one or more views in MySql 【发布时间】: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_SAL
的UNION ALL
和数据集的当前状态,在本例中为EMP
。
(SELECT * FROM EMP ORDER BY EMP.COMM)
UNION ALL
B_SAL
【问题讨论】:
样本数据和期望的结果真的很有帮助。union all
听起来没什么用。
您必须从视图中进行选择,而不能只是在联合之后将视图名称放入其中。
@GordonLinoff:期望的结果很大程度上取决于这两个查询之间的操作,另一个操作加上一些示例数据会使这个问题有点太长,问题会失去焦点。
【参考方案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;
【讨论】:
谢谢,这太明显了!以上是关于在 MySql 中创建一个或多个视图的 UNION的主要内容,如果未能解决你的问题,请参考以下文章
如何查看用于在 phpMyAdmin 或其他程序中创建视图的原始 MySQL?
使用以下数据库布局在 mysql 中创建视图的最佳方法是啥?