# 问题原因

这个异常出现在两个表使用 union all 进行合并时遇到的,

表 A 存在的字段数量和表 B 最初是一致的,包括字段名字和类型都是一致,使用 union all 连接无异常;

后来由于需要在表 B 添加了一个新的字段,导致两张表的字段在数量上不一致,出现了异常;

# 解决办法

在使用 union all 进行合并操作时,使用 null as "xxx" 解决,如下,由之前的 SQL 语句

SELECT *
	FROM project t
LEFT JOIN (
	SELECT * FROM biz_a_contract
	UNION ALL
	SELECT * FROM biz_b_contract
) a ON a.id = t.contract_id
WHERE
	t.id = '200'

改为

SELECT *
	FROM project t
LEFT JOIN (
	SELECT * FROM biz_a_contract
	UNION ALL
	SELECT tt.*,null AS 'xx' FROM biz_b_contract tt
) a ON a.id = t.contract_id
WHERE
	t.id = '200'

或者直接列出具体的字段,保证顺序一致性