首先我要实现的目标是:
获取 etp_product.price
和 option_price
的总和。
SELECT
etp_product.product_id,
etp_product.price,
(SELECT MIN(price) AS FIELD_2 FROM etp_product_option_value pov WHERE pov.product_id = etp_product.product_id) AS option_price
FROM
etp_product
GROUP BY
etp_product.product_id,
etp_product.price
我试过这个:
SELECT
etp_product.product_id,
etp_product.price,
(SELECT MIN(price) AS FIELD_2 FROM etp_product_option_value pov WHERE pov.product_id = etp_product.product_id) AS option_price,
SUM(etp_product.price + option_price) AS Total
FROM
etp_product
GROUP BY
etp_product.product_id,
etp_product.price
但出现此错误:
Unknown column 'option_price' in 'field list'
知道如何做到吗?
最佳答案
SELECT
p.product_id,
p.price,
IFNULL(MIN(pv.price), 0) as option_price,
(p.price + IFNULL(MIN(pv.price), 0)) as total
FROM etp_product p
JOIN etp_product_option_value pv ON WHERE pv.product_id = p.product_id
GROUP BY
p.product_id,
p.price
关于MySQL SUM() 带有 MIN() 的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184626/