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

请求编写商品及商品套装详情的SQL查询语句

商品及商品套装详情查询SQL方案

针对你需要查询单个商品和商品套装详情的需求,我整理了几种实用的SQL写法,你可以根据实际场景选择:

1. 查询单个商品详情

单个商品的标识是product表中issetofitem != 1,直接查询该表即可:

SELECT 
    ProductId,  -- 假设商品主键为ProductId,请根据实际表结构调整
    ProductName,
    Price,
    -- 其他你需要的商品字段
FROM product
WHERE issetofitem != 1
-- 可添加额外过滤条件,比如按商品ID精准查询
-- AND ProductId = 'XXX'

2. 查询商品套装及包含的明细商品

商品套装的issetofitem = 1,需要关联product_set_details表获取套装内的商品明细;如果需要明细商品的完整信息,还要再关联一次product表:

SELECT 
    -- 套装主数据信息
    p.ProductId AS SetMasterId,
    p.ProductName AS SetName,
    p.Price AS SetPrice,
    -- 明细商品信息
    pd.ItemId AS DetailProductId,
    p_detail.ProductName AS DetailProductName,
    p_detail.Price AS DetailProductPrice,
    pd.Quantity  -- 假设明细表里有数量字段,按需保留
FROM product p
JOIN product_set_details pd 
    ON p.ProductId = pd.ItemSetMasterId
JOIN product p_detail 
    ON pd.ItemId = p_detail.ProductId
WHERE p.issetofitem = 1
-- 可添加过滤条件,比如查询指定套装
-- AND p.ProductId = 'SET_001'

这里的两次JOIN:第一次关联套装明细记录表,第二次关联明细商品的主数据,能同时拿到套装本身和内部商品的完整信息。

3. 联合查询:一次性获取所有商品(含套装及明细)

如果需要把单个商品、套装主数据、套装明细的结果整合在一起,可以用UNION ALL实现,方便统一展示:

-- 单个商品部分
SELECT 
    ProductId AS Id,
    ProductName AS Name,
    Price,
    NULL AS SetMasterId,
    'single' AS ProductType
FROM product
WHERE issetofitem != 1

UNION ALL

-- 套装明细部分
SELECT 
    p_detail.ProductId AS Id,
    p_detail.ProductName AS Name,
    p_detail.Price,
    p.ProductId AS SetMasterId,
    'set_detail' AS ProductType
FROM product p
JOIN product_set_details pd 
    ON p.ProductId = pd.ItemSetMasterId
JOIN product p_detail 
    ON pd.ItemId = p_detail.ProductId
WHERE p.issetofitem = 1

UNION ALL

-- 套装主数据部分(可选,若需单独展示套装本身)
SELECT 
    ProductId AS Id,
    ProductName AS Name,
    Price,
    ProductId AS SetMasterId,
    'set_master' AS ProductType
FROM product
WHERE issetofitem = 1

这个查询会返回三类数据:单个商品、套装主数据、套装内的明细商品,通过ProductType字段可以区分类型,SetMasterId用来关联明细所属的套装。

注意事项

  • 以上SQL假设了部分字段名(比如ProductId、ProductName、ItemId),请根据你的实际表结构调整这些字段名称。
  • 如果不需要明细商品的完整信息,只需要明细ID和数量,可去掉第二次JOINproduct表的部分,直接查询product_set_details的字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:58:17