我正在尝试创建一个查询,该查询将联合所有一组历史数据和一组具有不同列数的新数据。我希望它在所有匹配的列上统一 ALL,并在历史数据集中创建一个新列作为 NULL,如果新数据有新列。
这是我目前的代码,我知道是错误的:
SELECT * FROM `historical_data`
UNION ALL
SELECT * FROM `new_data`
例如,如果字段 1 和 4 同时存在于两个表中,而字段 2 和 3 仅存在于新表中:
SELECT field1, field2, field3, field4 FROM `new_data`
UNION ALL
SELECT field1, NULL , NULL , field4 FROM `historical_data`