Select 来自两个数据库 - 合并但保留所有 headers

Select from two databases - Union but retain all headers

我已经搜索过这方面的帮助,但没有什么能完全符合我的要求,尽管我确信之前肯定有人问过。

Table 1 - table1
table1.date (date), table1.name (varchar(20))

Table 2 - table2
table2.date (date), table2.regnum (int(10))

我正在尝试显示按日期排序的两个表中数据的完整列表。

数据没有以任何方式连接,所以我认为 JOIN 是错误的方法。

当我使用 UNION 时,输出出现问题,因为第二列是 varchar 和 int 的交叉。

是否可以使用 UNION 得到一个只有日期合并而其他 headers 保持独立的结果。示例:

date (date), name (varchat(20)), regnum (int(10))

显然,来自 table1 的任何数据在 regnum 字段中都会有 NULL,而来自 table2 的任何数据在 name 字段中都会有 NULL。

您可以将值分隔到单独的列中以用于 union 操作:

select date, name, cast(NULL as signed) as regnum
from table1
union all
select date, NULL, regnum
from table2;

cast() 应该不是必需的,但它阐明了您正在尝试做的事情。

此外:您通常应该使用 union all,除非您特别想承担删除重复项的开销。