Как получить окончательную стоимость продукта с таблицей сезонов?
У меня есть эта схема SQL.http://sqlfiddle.com/#!9/79bb30/4/0
, и я использую этот SQL
SELECT *,
COALESCE(t1.cost, t1.base_price, `ec_products`.`price`) AS final_cost
FROM `ec_products`
LEFT JOIN
(SELECT ec_season.cost,
ec_season.base_price,
ec_season.product_id
FROM ec_season
WHERE Duration =
(SELECT MAX(Duration)
FROM ec_season
WHERE `Duration` <= 4 ) ) AS t1 ON `t1`.`product_id` = `ec_products`.`id`
Однако в этом запросе SQL есть ошибка для идентификатора продукта 1. Он дает неправильную цену 30,3.Но должен дать эту цену 40,00.Поскольку MAX (Duration) <= 4 должно быть 2, а цена 40. Можете ли вы помочь мне с этим? </p>
Я тоже пробовал это
SELECT ec_season.cost,
ec_season.base_price,
ec_season.product_id
FROM ec_season
WHERE Duration =
(SELECT ec_season.product_id , MAX(ec_season.Duration)
FROM ec_season WHERE `Duration` <= 4 GROUP BY ec_season.product_id)
Но это даетмне эта ошибка
1241 - операнд должен содержать 1 столбец
Пример таблицы сезонов
