несколько магазинов по каждому есть наличие (product_shop)
Нужно получить товары для выбранного города,
которые есть хотябы в одном магазине этого города в наличии
и для выбранного города на товар задана цена
с ценой и магазином
select `products`.*,
city_product.price AS price, CASE
WHEN city_product.start_at IS NULL THEN city_product.discount
WHEN city_product.end_at IS NULL THEN city_product.discount
WHEN CURDATE() BETWEEN city_product.start_at and city_product.end_at THEN city_product.discount
ELSE NULL
END as discount
from `products`
inner join `city_product` on `products`.`id` = `city_product`.`product_id`
inner join `product_shop` on `products`.`id` = `product_shop`.`product_id`
inner join `drugstores` on `drugstores`.`id` = `product_shop`.`drugstore_id`
where `city_product`.`city_id` = ?
and `drugstores`.`city_id` = ?
and `product_shop`.`in_stock` > ?
and `shops`.`deleted_at` is null
and `category_id` in (?)
and `city_product`.`price` >= ?
and `city_product`.`price` <= ?
and `products`.`deleted_at` is null
group by `products`.`id` order by `title` asc limit 9
Запрос получается такой, выполняется 500мс +- на 25к товаров эт норм или что то я делаю не так?
Индексами все обмазал?
Обсуждают сегодня