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

如何通过SQL JOIN实现所有门店与所有商品的全量关联查询?

正确SQL写法实现门店与商品全量组合查询

要实现所有门店与所有商品的全量组合(无库存时Quantity显示NULL),核心是先获取所有唯一的商品ID,再与门店表生成笛卡尔积,最后通过左连接匹配库存数据。

完整SQL语句

SELECT 
    s.StoreID,
    s.StoreName,
    items.ItemID,
    i.Quantity
FROM 
    Stores s
CROSS JOIN 
    -- 提取所有唯一商品ID,避免重复组合
    (SELECT DISTINCT ItemID FROM Inventory) items
LEFT JOIN 
    Inventory i 
    ON s.StoreID = i.StoreID 
    AND items.ItemID = i.ItemID
ORDER BY 
    s.StoreID, items.ItemID;

关键说明

  • 用(SELECT DISTINCT ItemID FROM Inventory)获取所有存在的商品ID,确保每个商品只参与一次组合,解决你之前遇到的重复结果问题。
  • CROSS JOIN生成所有门店与所有商品的全量配对。
  • LEFT JOIN Inventory表,匹配对应门店和商品的库存数据,无匹配时Quantity自动显示NULL。

内容的提问来源于stack exchange,提问作者exe.bat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:00:56