You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL使用UNION操作合并两张表时Category列全为NULL问题咨询

正确SQL写法

你需要的是纵向堆叠两张表的所有非重复行,显式指定列顺序做UNION即可:

SELECT Folder, Categeory, Subcategory, `Count`
FROM TableA
UNION
SELECT Folder, Categeory, Subcategory, `Count`
FROM TableB
ORDER BY Folder, Subcategory;

说明:

  1. Count属于SQL保留关键字,用反引号包裹避免语法报错
  2. 如果确认两张表不存在完全相同的行,可以把UNION替换为UNION ALL,跳过去重步骤提升执行效率
  3. 末尾的ORDER BY是为了输出顺序和样例一致,不需要可删除

之前操作的错误原因
  • 误用FULL JOIN:FULL JOIN是横向关联两张表生成宽表的语法,会将相同Folder的Table A、Table B行拼接为同一行,完全不符合纵向堆叠行的需求,自然会产生大量逻辑异常的空值。
  • UNION写法不规范:你使用了SELECT *自动匹配列,若两张表建表时的物理列存储顺序不一致,会出现列错位问题,比如把Table B的Subcategory值匹配到Categeory列位置,最终出现所有行Categeory都为NULL的异常,手动显式指定列的顺序即可解决。

内容的提问来源于stack exchange,提问作者Blackdynomite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:54:04