从两个数据库中选择 - Union,但保留所有标题

时间:2015-02-15 15:18:59

标签: mysql union

我已经在寻找这方面的帮助,但没有什么比我之后的情况更合适,不过我确信之前一定有人问过。

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结果只有合并日期而其他标题保持独立的结果。例如:

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

显然,来自table1的任何数据在regnum字段中都会为NULL,其中table2中的任何数据在名称字段中都将为NULL。

1 个答案:

答案 0 :(得分:2)

您可以将值分隔为union操作的单独列:

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

cast()不应该是必要的,但它澄清了你想要做的事情。

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