Есть две таблицы - товары (products) и история товаров (products_history).
В первой таблице две колонки `product_id` и `date_created`, во второй хранятся остальные данные товара за определенную дату (колонки `product_id`, `is_current`, `version_date`, `name`, `stock_balance` и проч.) - версий одного товара может быть очень много за разные даты с разными данными. Актуальной может быть только одна версия, которая обозначается полем `is_current` = 1
Нужно создать запрос, который бы выбирал товары за определенную дату с остатком на складе (stock_balance) более 0.
Т.е. например, сегодня 20 августа, и нужно получить список товаров, с актуальными данными на 15 августа (чтобы остаток на складе, наименование и проч. были показаны за 15 августа), но при этом есть обязательное условие что у выборки у всех товаров stock_balance > 0.
Получилось создать вот такой запрос:
"SELECT
products.product_id,
products.date_created,
products_history.name,
products_history.version_date,
products_history.stock_balance
FROM products_table_name products INNER JOIN products_history_table_name products_history
ON products.product_id = products_history.product_id
WHERE products.product_id = 1
AND products_history.version_date < 2019-08-15 23:59:59
ORDER BY products_history.version_date DESC LIMIT 1"
данный запрос получает актуальную версию товара по id за 15 августа, но не учитывает stock_balance. Вопрос - как изменить запрос, чтобы получить не один, а все товары, у которых stock_balance > 0.
Полагаю запрос должен выглядеть примерно так:
"SELECT
products.product_id,
products.date_created,
products_history.name,
products_history.version_date,
products_history.stock_balance
FROM products_table_name products INNER JOIN products_history_table_name products_history
ON products.product_id = products_history.product_id
WHERE products_history.version_date < 2019-08-15 23:59:59
AND stock_balance > 0
ORDER BY products_history.version_date DESC LIMIT 100"
Однако такой запрос выведет ВСЕ версии ВСЕХ товаров до указанной даты, а нужно получить по одной версии для каждого товара с version_date наиболее близкой к указанной.
Заранее спасибо, если кто поможет решить задачку)