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

将mysql中两个表中的记录按日期排序合并,mysql,sql,codeigniter,Mysql,Sql,Codeigniter,我有两个mysql表。一个表格用于“收到的款项”,另一个表格用于“支付的款项”。这两个表都有一些相同的字段,但有些字段不同,如收到的付款有一个额外的“坏账”列等等。 这两个表都有一个日期列 现在我需要从这两个表中按日期生成一个完整的事务语句。所以我计划与ORDERBY一起使用UNION。但它不会起作用,因为在这种情况下,列的数量需要相同 在我的例子中,列是不同的。在这种情况下应该怎么做?使用虚拟/占位符列 e、 g 对缺少的列使用NULL或适当的伪值 “AS”语句用于为虚拟列命名。严格来说,我认

我有两个mysql表。一个表格用于“收到的款项”,另一个表格用于“支付的款项”。这两个表都有一些相同的字段,但有些字段不同,如收到的付款有一个额外的“坏账”列等等。 这两个表都有一个日期列

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


在我的例子中,列是不同的。在这种情况下应该怎么做?

使用虚拟/占位符列

e、 g

对缺少的列使用NULL或适当的伪值


“AS”语句用于为虚拟列命名。严格来说,我认为只有
UNION
中的第一个
SELECT
需要定义列名,但我更喜欢显式。请尝试使用UNION语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

默认情况下,UNION运算符只选择不同的值。若要允许重复值,请使用UNION ALL。希望它能帮助您。

请发布表的架构和所需的输出。我不理解“作为”的含义“参与两个选择查询。它们在每个查询中对应哪些列?另外,是否有一种方法可以使用*,从两个表中获取所有列?否,如果它们的列数/类型不同(如您所述)。您是否正确阅读了问题?我已经提到了这一点,因为两个表中的列数不同。在联合中,列数必须相同。请看米奇·麦特的答案。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2