UNION SELECT不显示所有列

SnakeDoc

我有几个,VIEW它们嵌套在一个较大VIEW的报告中。

CREATE VIEW view1 AS
    SELECT table1.col1 AS t1c1, table1.col2 AS t1c2
    FROM table1
    WHERE table1.col1 = 0
;

SAMPLE OUTPUT:

SELECT * FROM view1;
+-------------------+
|  t1c1  |   t1c2   |
+--------+----------+
|    0   |  t1stuff |
+--------+----------+
|    0   | t1stuff2 |
+--------+----------+

CREATE VIEW view2 AS
    SELECT table2.col1 AS t2c1, table2.col2 AS t2c2
    FROM table2
    WHERE table2.col1 = 5
;

SAMPLE OUTPUT:

SELECT * FROM view2;
+-------------------+
|  t2c1  |   t2c2   |
+--------+----------+
|    5   |  t2stuff |
+--------+----------+
|    5   | t2stuff2 |
+--------+----------+

然后,我将它们合并为“报告”视图,如下所示:

CREATE VIEW view3 AS
    SELECT * FROM view1
    UNION
    SELECT * FROM view2
;

SAMPLE OUTPUT:
SELECT * FROM view3;
+-------------------+
|  t1c1  |   t1c2   |
+--------+----------+
|    0   |  t1stuff |
+--------+----------+
|    0   | t1stuff2 |
+--------+----------+
|    5   |  t2stuff |
+--------+----------+
|    5   | t2stuff2 |
+--------+----------+

代替预期:

+-------------------+--------+----------+
|  t1c1  |   t1c2   |  t2c1  |   t2c2   |
+--------+----------+--------+----------+
|    0   |  t1stuff |        |          |
+--------+----------+--------+----------+
|    0   | t1stuff2 |        |          |
+--------+----------+--------+----------+
|        |          |   5    | t2stuff  |
+--------+----------+--------+----------+
|        |          |   5    | t2stuff2 |
+--------+----------+--------+----------+

如何获得预期的结果?

lc。

一个人会问,如果没有数据相关并且甚至不共享列,为什么要在单个查询中执行此操作。但是无论如何,您都必须指定所有列:

select col1 as t1c1, col2 as t1c2, null as t2c1, null as t2c2
from view1
union all
select null as t1c1, null as t1c2, col1 as t2c1, col2 as t2c2
from view2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UNION SELECT不显示所有列

来自分类Dev

SQL Union 不显示所有结果

来自分类Dev

SQL Union所有问题

来自分类Dev

使用 Union ALL 显示所有表中的所有列,每个表中的列数不同

来自分类Dev

SQL UNION超过列的所有可能值?

来自分类Dev

Linq union所有等效的SQL代码

来自分类Dev

SQL Union“所有其他”行

来自分类Dev

一个 SELECT 中的 UNION 列

来自分类Dev

SQL Union 显示错误结果

来自分类Dev

MySQL UNION SELECT缺少字段

来自分类Dev

MySQL UNION SELECT和IN子句

来自分类Dev

Mysql UNION SELECT缺少字段

来自分类Dev

MySQL UNION SELECT和IN子句

来自分类Dev

禁用 MySQL 的 UNION SELECT 查询

来自分类Dev

什么是交叉联接(SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION...)

来自分类Dev

单独列中的SQL Union

来自分类Dev

MySQL - 带有额外列的 UNION DISTINCT

来自分类Dev

LINQ中的条件UNION(还是比UNION有更好的方法)?

来自分类Dev

mysql ColumnName AS 1,ColumnName AS 2,带有WHERE,对所有列使用UNION获取AS 1

来自分类Dev

UNION SELECT 上的 MySQL COUNT 整数值并显示为值

来自分类Dev

SQL Server Union All不获取所有行

来自分类Dev

Spark Union所有多个数据框

来自分类Dev

在EF上使用Union时如何选择所有记录

来自分类Dev

在UNION中订购所有商品均无效

来自分类Dev

Firefox <form> <select> <option>不显示所有选项

来自分类Dev

Impala select *不显示表的所有详细信息

来自分类Dev

并排显示一条Union语句

来自分类Dev

首先使用 JOIN/UNION 显示特色记录

来自分类Dev

添加列时datagridview不显示所有列