Это текущее определение таблицы цен на продукты (я решил смоделировать ее отдельно, чтобы своевременно создавать отчеты об изменении цен на каждый конкретный продукт)
Код: Выделить всё
CREATE TABLE IF NOT EXISTS commerce_products_price (
price_id INT(11) NOT NULL AUTO_INCREMENT,
product_id INT(11) NOT NULL,
price FLOAT NOT NULL,
price_offer FLOAT,
date_added DATETIME NOT NULL
PRIMARY KEY (price_id)
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Код: Выделить всё
SELECT
DISTINCT(p1.product_id) AS product_id
FROM commerce_products_price p1
INNER JOIN commerce_products_price p2 ON (p1.product_id = p2.product_id) AND (p2.date_added > p1.date_added)
WHERE p2.price < p1.price
Вот SQL-скрипт, который я настроил для вас. Я нацелился на MySQL 5.5 (ядро базы данных, установленное на моей виртуальной машине).
Но он работает не так, как я хочу, и я уверен, что что-то упускаю. Я выбрал этот вопрос в качестве основы для построения своего запроса. Еще я хотел бы добавить к этому запросу возможность получить список продуктов с падением цены с заданным порогом (аля DATEDIFF(...)
Подробнее здесь: https://stackoverflow.com/questions/350 ... p-in-price
Мобильная версия