所以我有两个 mySQL 表:products
和 prices
。在产品中,我有有关产品的信息(id、名称、类型、日期...),价格包括产品的价格信息。 IE。 产品表中 ID 为 CF003X 的产品 USB 可在卖家的价格表中购买(A、B、C 以及价格 18.00、12.00、13.50)。
现在,当我想要选择某个日期的最高价格(按产品 ID 分组)时,查询会返回最高价格,但无法正确显示来自哪个卖家。
我也想得到结果,即卖家“Asus”的价格最高1
最佳答案
这是一个可以使用子查询的典型示例:创建一个子查询,返回特定数据范围内产品的最高价格,然后将其连接回价格表并获取以该价格供货的供应商。然而,日期范围可能应该在价格表中,而不是在产品表中。价格发生变化,但产品却没有变化(可以将它们标记为不列出)。您还应该考虑在定价表中添加产品和定价 ID。
但是,我将使用您在 sqlfiddle 示例中提供的字段。
select prod.id, p.seller, p.price1, p.price2
from prices p
inner join (select id, max(price1) as maxprice from prices group by id) mp on p.id=mp.id and p.price1=mp.maxprice
inner join products prod on p.id=prod.id
where prod.date='...'
您可以扩展上述查询,仅通过将特定供应商添加到 where 条件来显示该供应商。
关于mysql - 在 mySQL 中使用 MAX() 函数时获取正确的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34337537/