我已经在寻找这方面的帮助,但没有什么比我之后的情况更合适,不过我确信之前一定有人问过。
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。
答案 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
,除非您特别想要产生删除重复项的开销。