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

如何将SKU表与站点表交叉关联,实现每个SKU对应所有站点?

解决SKU与站点全量组合的SQL报错问题

你要实现每个SKU对应每个站点的全量组合,本质是求两张表的笛卡尔积,但当前SQL用错了连接方式和条件,才导致类型转换报错:

错误原因

你用了FULL OUTER JOIN并指定[Table_1].[SKU] = [Table_2].[Site]作为连接条件,但这两个字段的内容(比如R001和Store1)完全不可能相等,而且数据库在尝试匹配时触发了不必要的隐式类型转换(误把字符串类型的SKU当成数值类型处理),所以抛出转换错误。更关键的是,这个连接逻辑根本达不到你要的“每个SKU对应每个站点”的需求。

正确解决方案

要生成所有SKU和站点的组合,直接用CROSS JOIN(交叉连接)即可,它会自动将两张表的所有行进行两两组合,不需要指定ON条件:

SELECT
    [Table_1].[SKU],
    [Table_2].[Site]
FROM 
    [Table_1]
CROSS JOIN 
    [Table_2]

结果说明

执行这条语句后,会得到9条数据(3个SKU × 3个站点),正好是你需要的每个SKU对应每个站点的全量组合。

补充:旧写法兼容

如果你的数据库支持旧版语法,也可以用逗号分隔两张表的方式实现相同效果,但推荐使用标准的CROSS JOIN语法,可读性更强:

SELECT
    [Table_1].[SKU],
    [Table_2].[Site]
FROM 
    [Table_1], [Table_2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:00:49