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