MySQL — получайте продукты по сниженной ценеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 MySQL — получайте продукты по сниженной цене

Сообщение Anonymous »

У меня есть следующая структура данных для продуктов на специальной платформе электронной коммерции (все еще в разработке, так что будьте снисходительны: P).

Это текущее определение таблицы цен на продукты (я решил смоделировать ее отдельно, чтобы своевременно создавать отчеты об изменении цен на каждый конкретный продукт)

Код: Выделить всё

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;
Я хотел бы получить список товаров (по идентификаторам), на которые снизилась цена. На данный момент смоделированный мной SQL-запрос выглядит следующим образом:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»