SQL Query Prestashop:如何过滤组合?

时间:2018-08-17 13:34:15

标签: mysql prestashop-1.7

我设法在prestashop上编写了一个SQL查询,以导出具有我的电子商务属性的产品和组合。现在,我想过滤结果,以获得每种产品的最便宜组合。

例如,我得到了这张表,其中包含2种产品和每种产品3种可能的组合:

产品价格
A 22€
A 44€
A 100€
B 15€
B 30€
B 45欧元

我想知道是否有一种方法可以使用WHERE命令或其他方法对SQL查询进行过滤,从而仅给出最便宜的结果。

因此查询SQL的结果将是:

产品-价格
A 22€
B 15欧元

可以吗?

2 个答案:

答案 0 :(得分:0)

一个简单的GROUP BY查询应该可以工作:

SELECT product, MIN(price) AS min_price
FROM yourTable
GROUP BY product;

编辑:

如果您的价格数据实际上是文本,并且在每个价格字符串的末尾都有一个欧元符号,那么您必须将其删除,并在采用最小值之前转换为整数:

SELECT
    product,
    MIN(CAST(LEFT(price, CHAR_LENGTH(price) - 1) AS UNSIGNED)) AS min_price
FROM yourTable
GROUP BY product;

Demo

但是,最好不要将货币符号和数字价格数据一起存储在同一列中。相反,您可以添加一个数字列,该列将保持价格对应的货币。然后,您只需要使用我的第一个查询即可获得所需的答案。

答案 1 :(得分:0)

您是否尝试过简单的聚合查询?

select product, min(price) as cheapest_price
from mytable
group by product;

这将为您提供每种产品价值的最低价格。