我有两个mysql表。一张表用于“收到付款”,另一张表用于“付款”。两个表都有一些常见的字段,但有些是不同的,就像收到的付款有另外一列'badDebt'等等。 这两个表都有一个日期列。
现在我需要从这两个表日期生成一个完整的事务语句。所以我计划使用UNION和ORDERBY。但它不起作用,因为在这个列中需要相同的列数。
在我的情况下,列不同。在这种情况下该怎么办?
答案 0 :(得分:1)
使用虚拟/占位符列。
e.g。
select col1, NULL as col2, col3 from Table1
union all
select col1, col2, Null as col3 from Table2
对缺失的列使用NULL或适当的虚拟值。
“AS”语句用于为虚拟列命名。严格来说,我认为只有SELECT
中的第一个UNION
需要定义列名,但我更喜欢明确
答案 1 :(得分:-1)
尝试使用UNION语法。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
UNION运算符默认情况下仅选择不同的值。要允许重复值,请使用UNION ALL。希望它可以帮到你。