当前位置: 首页 > 面试题库 >

每种产品的最低/最高价格(查询)

司寇星海
2023-03-14
问题内容

目标

数据库中选择每种产品的最低/最高价格。

问题

我只能获得具有指定标识符的产品。

我有的

我正在使用 MySQL, 并且有以下查询:

SELECT (MIN(`map`.`Product_Price`)) as `minProductPrice`,
    (MAX(`map`.`Product_Price`)) as `maxProductPrice`,
    `pr`.`Product_Name` as `productName`
FROM `bm_market_products` as `map`
JOIN `bm_products` as `pr`
JOIN `bm_markets` as `ma`
WHERE `map`.`Product_Id` = 1
AND `map`.`Product_Id` = `pr`.`Product_Id`

我的回报是minProductPricemaxProductPriceproductName

解决方案

谢谢您的帮助。上面的两个答案都是正确的-但我选择@GordonLinoff答案被接受,因为我认为这将对初学者更加有用和享受-‘’但真的要感谢你们两个人。
最终查询:

SELECT MIN(`map`.`Product_Price`) as `minProductPrice`,
       MAX(`map`.`Product_Price`) as `maxProductPrice`,
       `pr`.`Product_Name` as `productName`
FROM `bm_market_products` `map` join
     `bm_products` as `pr`
     on map`.`Product_Id` = `pr`.`Product_Id`
group by `map`.`Product_Id`

干杯!


问题答案:

首先,使用时,即使MySQL不需要join,也应 始终 有一个on子句。如果您想要一个cross join,请明确说明。

其次,您根本不用tm_markets查询中的表。不需要它,因此将其删除。

结果查询应工作:

SELECT MIN(`map`.`Product_Price`) as `minProductPrice`,
       MAX(`map`.`Product_Price`) as `maxProductPrice`,
       `pr`.`Product_Name` as `productName`
FROM `bm_market_products` `map` join
     `bm_products` as `pr`
     on map`.`Product_Id` = `pr`.`Product_Id`
WHERE `map`.`Product_Id` = 1

因为您只选择一种产品,group by所以可能没有必要。您可以考虑一下,但是:

SELECT MIN(`map`.`Product_Price`) as `minProductPrice`,
       MAX(`map`.`Product_Price`) as `maxProductPrice`,
       `pr`.`Product_Name` as `productName`
FROM `bm_market_products` `map` join
     `bm_products` as `pr`
     on map`.`Product_Id` = `pr`.`Product_Id`
group by `map`.`Product_Id`

这将返回所有产品的信息。



 类似资料:
  • 我需要找到产品的最低和最大价格,这样我就可以用它来设置我的价格过滤器的范围。我在catalog/model/layer/filter/price.php中使用了getMaxPriceInt()和getMinPriceInt()方法。但是返回的值基于'min_price'字段。 如何根据final_price找出集合中产品的最低和最高价格?也就是说,如果集合中有4个产品(我只登记需要的字段) get

  • 问题内容: 我想选择每种产品中最便宜的(包括运输成本,价格转换为当地货币)。最便宜=(product.price + product.shipping)*Seller.to_aud 我的数据库具有如下表: 如果所有卖家都使用一种货币,而我没有增加运输成本,则可以得到我想要的结果: 但是我不知道从这里去哪里。任何帮助将不胜感激。 问题答案: SELECT a.id, a.price*ISNULL(s

  • 问题内容: 我不是SQL专家,我过去使用过它,很少遇到Google无法解决的问题…但是这次我需要询问社区。 我有一个名为“ Transactions”的表的数据库,其数据如下: 所需的输出是: 我尝试自己编写一个,最终得到如下SQL: 但是,在我的数据集中,此返回(减少)显示每个产品有多行 因此,请确认:无论价格如何,我希望每种产品的最新购买日期为1行,但是我需要在返回的数据中提供价格。 谢谢 问

  • 我有两张桌子。一个ID及其价格表和第二个每个ID折扣表。在折扣表中,一个Id可以有很多折扣,我需要知道一个Id的最终价格。 查询它的最佳方式是什么(在一次查询中)?对于每个id的许多折扣,查询应该是通用的(不仅仅是下面示例中提到的2个) 例如表1 表二 最终结果:

  • 请帮助我,我已经有一个代码,它运行完美,但问题是我需要确定每行的最高和最低。我不知道如何开始,请帮助我,也请向我解释。这是代码:

  • 有没有更好的方法,以最低的价格与拉威尔雄辩的对象?每个产品都有多个票证类型,每个票证类型可以有多个价格。