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

SQL查询实现:仅当套装所有商品均符合用户预算时返回对应SetID

解决思路

你可以通过分组聚合+全匹配校验的逻辑实现需求,核心是比对套装内总商品数和符合预算要求的商品数是否完全相等。

可直接使用的SQL

针对你给出的UserID=1的场景,写法如下:

SELECT b.SetID
FROM ItemCosts b
LEFT JOIN UserBudget a 
  ON a.ItemID = b.ItemID 
  AND a.UserID = 1 
  AND a.ItemBudget >= b.ItemPrice
GROUP BY b.SetID
HAVING COUNT(*) = COUNT(a.ItemID)
逻辑说明
  1. LEFT JOIN 关联时直接把用户ID、商品匹配、预算充足三个条件都放在关联规则里,不满足条件的记录UserBudget侧的字段会返回NULL
  2. 按SetID分组后,COUNT(*)统计的是当前套装的总商品数量,COUNT(a.ItemID)统计的是符合预算要求的商品数量
  3. 两者相等时说明套装内所有商品都满足要求,会被筛选返回

如果需要关联Sets表获取完整的套装信息,可以调整为:

SELECT c.*
FROM Sets c
INNER JOIN ItemCosts b ON c.SetID = b.SetID
LEFT JOIN UserBudget a 
  ON a.ItemID = b.ItemID 
  AND a.UserID = 1 
  AND a.ItemBudget >= b.ItemPrice
GROUP BY c.SetID
HAVING COUNT(*) = COUNT(a.ItemID)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:36:04