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

如何合并无外键关联的FundsPlanning与GradeMst表的查询结果?

解决方案

你需要通过PurchaseContract作为中间关联表,把FundsPlanning、SupplierMst和GradeMst串联起来——它同时关联了SupplierId和GradeId,刚好能弥补FundsPlanning和GradeMst之间无直接关联的问题。

完整SQL查询语句

SELECT 
    FP.SupplierId,
    FP.WeightLoaded,
    FP.DeliveryDate,
    FP.InvoiceAmount,
    GM.Grade AS GradeName -- 重命名为需求的GradeName字段
FROM FundsPlanning FP
-- 关联供应商表,保留你原查询的逻辑
INNER JOIN SupplierMst SM 
    ON FP.SupplierId = SM.SupplierId
-- 通过SupplierId关联采购合同表,获取该供应商对应的GradeId
INNER JOIN PurchaseContract PC 
    ON FP.SupplierId = PC.SupplierId
-- 通过采购合同的GradeId关联等级表,拿到GradeName
INNER JOIN GradeMst GM 
    ON PC.GradeId = GM.GradeId
WHERE SM.SupplierId = 2; -- 过滤目标供应商

逻辑说明

  1. 保留你原有的FundsPlanning与SupplierMst的关联逻辑,确保获取供应商的基础业务数据。
  2. 新增与PurchaseContract的关联:利用SupplierId匹配,拿到该供应商对应的所有GradeId记录。
  3. 再通过PurchaseContract的GradeId关联GradeMst,直接取出对应的GradeName字段。

注意事项

如果同一个供应商对应多个Grade,或者同一笔FundsPlanning记录关联多份采购合同,查询结果可能出现重复行。若需要去重,可在SELECT后添加DISTINCT关键字:

SELECT DISTINCT
    FP.SupplierId,
    FP.WeightLoaded,
    FP.DeliveryDate,
    FP.InvoiceAmount,
    GM.Grade AS GradeName
-- 后续JOIN和WHERE语句不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:43:19