You need to enable JavaScript to run this app. SQL实现全量员工-产品组合的费率查询,无匹配值默认返回0.00
优惠活动
大模型
产品
解决方案
定价
更多

SQL实现全量员工-产品组合的费率查询,无匹配值默认返回0.00

实现方案

核心思路很直接:先算出所有员工和所有产品的全量配对,再左接费率表匹配已存的费率值,没有匹配的就兜底填0.00。

具体SQL语句

SELECT
  a.empId AS empID,
  b.prodName,
  COALESCE(c.rate, 0.00) AS rate
FROM a
-- 交叉连接生成全量员工-产品组合
CROSS JOIN b
-- 左关联费率表,保留所有全量组合,只匹配已存在的费率记录
LEFT JOIN c 
  ON a.empId = c.empId 
  AND b.prodId = c.prodId
-- 可选加排序,让输出顺序和示例完全对齐
ORDER BY a.empId, b.prodId;

关键说明

  • 这里用CROSS JOIN而不是其他连接方式,就是为了拿到员工表每条记录和产品表每条记录的一一配对,哪怕后续往c表里插了部分费率,也不会丢失没有费率的组合。
  • 用COALESCE做空值兜底是因为它是SQL通用标准函数,主流数据库全支持,比数据库特有函数(比如MySQL的IFNULL、SQL Server的ISNULL)兼容性更好,换环境不用改代码。
  • 不需要针对空c表做特殊兼容:哪怕c表一条记录都没有,左关联出来的c.rate全是NULL,会被自动转成0.00,输出结果和示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 06:36:03