有两个表用于记录收入(tableA)与支出(tableB),现在需要进行合并统计的操作,但两个字段不同、字段数量也不同,并且是没有任何交集的,比如:
tableA字段:
ID、a、b、c、d
tableB字段:
ID、e、f、g、h、i、j、k、l
这里面都有存储具体的发生金额,但字段名不一样。
能否对这两个表进行合并查询,并把字段名别名成一样的,这样查询和显示时也方便
比如tableA的a字段别名为UserName
tableB的e字段别名为UserName
不知各位能否明白我的意思?
谢谢
------解决思路----------------------
可以的,通过union all来实现。
比如:
select id,a username,b as col1,c as col2,d as col3,null as col4,null as col5,null as col6,null as col7
from tableA
union all
select id,e username,f as col1,g as col2,h as col3,i as col4,j as col5,k as col6,l as col7
from tableB
------解决思路----------------------
as成一样的列名,然后union
------解决思路----------------------
用UNION ALL 是有要求的,数量要求一样,对应的列要,要求数据类型兼容
要符合列数目一样,可以给列少的表在查询时加几个常量为NULL的列,
对于相同位置的列,如果不能隐式转化成同数据类型的列,要自己CAST 或 CONVERT转化一下