1. 分别测试每个SELECT
- 单独运行每个SELECT语句
- 检查每个查询返回的列数
- 使用DESCRIBE查看表结构
2. 使用COUNT(*)验证列数
SELECT COUNT(*) as column_count
FROM (
SELECT id, name, email FROM users
) as t1;
SELECT COUNT(*) as column_count
FROM (
SELECT id, name FROM customers
) as t2;
3. 数据类型兼容性
- 确保对应列的数据类型兼容
- 使用CAST函数转换数据类型
- 注意NULL值的处理
1. 子查询中的UNION
SELECT * FROM (
SELECT col1, col2 FROM table1
UNION
SELECT col1, col2, col3 FROM table2
) as subquery;
2. 多表JOIN后的UNION
SELECT t1.col1, t2.col2 FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id
UNION
SELECT col1, col2 FROM table3;
3. 视图中的UNION
CREATE VIEW my_view AS
SELECT col1, col2 FROM table1
UNION
SELECT col1, col2 FROM table2;