合并按日期排序的mysql中两个表的记录

时间:2013-05-03 06:20:59

标签: mysql sql codeigniter

我有两个mysql表。一张表用于“收到付款”,另一张表用于“付款”。两个表都有一些常见的字段,但有些是不同的,就像收到的付款有另外一列'badDebt'等等。 这两个表都有一个日期列。

现在我需要从这两个表日期生成一个完整的事务语句。所以我计划使用UNION和ORDERBY。但它不起作用,因为在这个列中需要相同的列数。

在我的情况下,列不同。在这种情况下该怎么办?

2 个答案:

答案 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。希望它可以帮到你。