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

如何用单条SQL查询获取产品及其关联产品的交错列表

产品与关联产品交错排列的SQL查询方案

要实现主产品与关联产品交错排列(关联产品紧随对应主产品)且避免大量子查询的需求,可以通过UNION ALL合并数据集并自定义排序字段来实现,具体SQL如下:

SELECT p.ProdId, p.ProdName
FROM (
    -- 取出所有主产品,标记为组内优先展示
    SELECT 
        p.ProdId, 
        p.ProdName,
        p.ProdId AS sort_group,
        1 AS sort_order
    FROM TABLE_products p
    UNION ALL
    -- 取出所有关联产品,关联到对应主产品的排序组,标记为组内次位展示
    SELECT 
        p.ProdId, 
        p.ProdName,
        rp.ProdId_1 AS sort_group,
        2 AS sort_order
    FROM TABLE_related_products rp
    JOIN TABLE_products p ON rp.ProdId_2 = p.ProdId
) combined
ORDER BY sort_group, sort_order;

代码说明

  1. 主产品数据集:从TABLE_products取出所有产品,用sort_group标记为自身ID作为排序组,sort_order设为1,确保主产品在组内排在最前面。
  2. 关联产品数据集:通过JOIN关联TABLE_related_products和TABLE_products,取出关联产品的信息,用主产品ID(ProdId_1)作为sort_group,sort_order设为2,让关联产品紧跟对应主产品。
  3. 排序逻辑:最终按sort_group(保证同一主产品及其关联产品为一组)和sort_order(保证主产品在前、关联产品在后)排序,即可得到目标交错排列的结果。

适配示例的效果

执行上述SQL后,会得到与你期望完全一致的结果:主产品1后紧跟关联产品5,主产品6后紧跟关联产品1,无关联的产品则单独展示。

这种方案避免了为每个产品编写子查询,通过JOIN和UNION ALL的组合提升了大数据量场景下的查询性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:11:03