【发布时间】:2012-10-18 04:23:09
【问题描述】:
这是我第一次在这里提问。对学习很有帮助。
我正在尝试选择一个表并仅获取另一个表中对其特定组具有最大值的行。一个非常接近但不完全存在的最佳答案之一是这个(SQL Select only rows with Max Value on a Column),但它只与一个表有关。我发现其他一些有多个表但不确定如何使用它。
我有一张(简体)表格
prodID, quantity, mach, etc
然后我有一张桌子
prodStatusID, prodID, userID, subStatusID
带有子状态名称的最后一个表
subStatusID, subStatusName
我正在尝试获取包含所有第一个表和第二个表的表,但仅包含具有最大状态编号并包含正确状态名称的行。
我的另一个担心现在可能无关紧要,但在一两年内这个东西开始真正填满的时候是性能。我不知道在 select 中包含 select 是否不好,但如果我试图返回所有产品,那么它将对每个产品进行查询。
只是为了更清楚。在第二个表 prodStatus 中可能有 2 行 prodID 为 4,但第一个的 subStatusID 为 1,第二个为 2。用户 ID 将不同。我只想返回第二行,因为它具有最高的状态编号,我需要与该行关联的 userID 和 statusName。
我已经在谷歌上搜索了 2 天以获得这个答案,我看到了 1 条关于拍卖的信息,但即使在研究之后我也没有完全理解它。
【问题讨论】:
-
您可以发布带有示例数据的架构吗?在sqlfiddle.com