mysql显示商店最便宜的产品价格

Posted

技术标签:

【中文标题】mysql显示商店最便宜的产品价格【英文标题】:mysql show cheapest product price from store 【发布时间】:2019-01-17 21:33:50 【问题描述】:

我有表格支票,我在其中插入支票。 有些来自同一家商店,产品和价格重复。

所以我想查询哪个商店价格最便宜的产品。

我的mysql表:

    +----------+---------------------+-----------+-----------------+-----------+
    |    ID    |    Product_Name     |   price   |  discount_price |  store_id |
    +----------+---------------------+-----------+-----------------+-----------+
    |    1     |   Banana 200g       |    1.25   |       0         |     1     | 
    |    2     |    Red bull 0.5l    |    2.20   |      1.90       |     1     | 
    |    3     |    Red bull 0.5l    |    2.20   |      1.90       |     1     | 
    |    4     |    Banana 300g      |    1.50   |       0         |     2     |
    |    5     |    Red bull 0.5l    |    2      |       0         |     2     |
    +----------+---------------------+-----------+--------------+--------------+

第二个问题如何计算或查询1kg的价格?或者如果 1 公斤香蕉价格是 5 美元,而你买了 0.200 克,那么它会通过查询来计算还是应该使用 php 来计算?

【问题讨论】:

MySQL - Fetching lowest value的可能重复 这会很复杂,因为这些值不是分开的......你不能改变数据放入数据库的方式吗? (将“香蕉”与“200g”分开) @Jeff 那么我必须如何分隔表格?我通过支票将产品放入数据库,我有杂货店检查并将所有产品和价格提交到数据库。但我必须创建不同的表? PHP 代码在哪里?它是否相关? 我不知道该怎么做,查询所有数据或可能用 php 来做这一切。 @Dharman 【参考方案1】:

这并不能回答问题,我知道。 它仅显示了一个表结构示例,该示例将使您的问题(以及您的问题)更容易解决。因为你要求它。

Products
+----+--------+-----------+
| id |  name  |   brand   |
+----+--------+-----------+
| 1  | banana | chicita   |
+----+--------+-----------+
| 2  | banana | fairtrade |
+----+--------+-----------+

Prices
+---------+-------+----------+------+-------+
| product | store | quantity | unit | price |
+---------+-------+----------+------+-------+
| 1       | 2     | 200      | g    | 0,60  |
+---------+-------+----------+------+-------+
| 1       | 56    | 1        | kg   | 1,20  |
+---------+-------+----------+------+-------+
| 2       | 56    | 0,5      | kg   | 1,00  |
+---------+-------+----------+------+-------+

Units (should have an id, too. Made for readability here)
+------+-------------+----------+--------+-----------+
| unit |    factor   | unitgroup| locale | isDefault |
+------+-------------+----------+--------+-----------+
| g    | 1           | weight   | europe | true      |
+------+-------------+----------+--------+-----------+
| kg   | 0,01        | weight   | europe | false     |
+------+-------------+----------+--------+-----------+
| ml   | 0,001       | volume   | europe | false     |
+------+-------------+----------+--------+-----------+
| dl   | 0,1         | volume   | europe | false     |
+------+-------------+----------+--------+-----------+
| l    | 1           | volume   | europe | true      |
+------+-------------+----------+--------+-----------+
| m    | 1           | distance | europe | true      |
+------+-------------+----------+--------+-----------+
| km   | 0,001       | distance | europe | false     |
+------+-------------+----------+--------+-----------+
| mile | 0,000621371 | distance | us     | false     |
+------+-------------+----------+--------+-----------+

使用类似的结构,您可以在一个带有一些左连接、一个 MIN() 和其中的一些计算的 sql 查询中找到最低价格。

【讨论】:

请注意 group 是一个保留字,因此对于表/列标识符来说是一个糟糕的选择 @Strawberry 是的,我会改的! @Jeff 为什么使用列“isDefualt”我可以做什么或我必须对该列做什么? 使用“isDefault”列,您的应用程序将知道它应该显示为标准的单位,并且您会知道必须计算价格的单位。只是一个建议。您还可以在产品表中有一个“单位”列,以便香蕉以 g 显示/显示,mellons 以 kg 显示/显示。所有这些都只是输出的预设。

以上是关于mysql显示商店最便宜的产品价格的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP - 加入表格后对数据进行分页

Magento:从另一家商店获取产品价格?

用 WooCommerce 3 中选择的变化价格替换可变价格范围

Educational Codeforces Round 90 (Rated for Div. 2)ABCD

对象存储哪家价格便宜?最便宜的云存储推荐!

如果 Woocommerce 产品价格为零,则显示联系按钮,否则显示添加到购物车按钮