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

MS Access查询:按ProductID分组获取最小ColorID的记录

MS Access 查询:每个产品取最小ColorID的图片记录

你原SQL的问题在于子查询取的是全表的最小ColorID,而非每个ProductID对应的最小值,所以无法得到每个产品单独的最小ColorID记录。以下是两种可行的正确写法:

方法一:关联子查询

SELECT i.ProductID, i.ColorID, i.ImageName
FROM Images AS i
WHERE i.ColorID = (
    SELECT MIN(ColorID)
    FROM Images
    WHERE ProductID = i.ProductID
);

这个写法会针对每一行的ProductID,单独查询该产品对应的最小ColorID,再筛选出匹配的记录,直接满足每个产品取最小ColorID的需求。

方法二:分组子查询关联原表

SELECT i.ProductID, i.ColorID, i.ImageName
FROM Images AS i
INNER JOIN (
    SELECT ProductID, MIN(ColorID) AS MinColorID
    FROM Images
    GROUP BY ProductID
) AS sub ON i.ProductID = sub.ProductID AND i.ColorID = sub.MinColorID;

先通过子查询分组得到每个ProductID的最小ColorID,再和原表关联获取对应的ImageName,这种方式在6万条数据的场景下性能表现更稳定。

注意:因为Images表的主键是ProductID+ColorID,每个组合唯一,所以两种方法都会返回每个产品唯一的目标记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:53:13