1

我有两个 mysql 表。一张表用于“收到的付款”,另一张用于“已付款”。这两个表都有一些共同的字段,但有些不同,例如收到的付款有一个额外的“badDebt”列等等。这两个表都有一个日期列。

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

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

4

2 回答 2

1

使用虚拟/占位符列。

例如

select col1, NULL as col2, col3 from Table1
union all
select col1, col2, Null as col3 from Table2

对缺失的列使用 NULL 或适当的虚拟值。

'AS'语句是用来给dummy列命名的。严格来说,我相信只有第一个SELECT需要UNION定义列名,但我更喜欢明确。

于 2013-05-03T06:22:25.460 回答
-1

尝试使用 UNION 语法。

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

默认情况下,UNION 运算符仅选择不同的值。要允许重复值,请使用 UNION ALL。希望它可以帮助你。

于 2013-05-03T07:33:38.120 回答