SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.06.2018 12:31:50

diepower
Участник
Зарегистрирован: 18.06.2018
Сообщений: 2

Поиск заказов по товарам в них

Здравствуйте, помогите пожалуйста..
Есть базовые знания по MySQL запросам, но хочется сделать более правильно.. поэтому прошу помощи..

Задача:
Есть таблица заказов(хранится в таблице orders_list), в заказе есть список товаров(которые хранятся в таблице - orders_items, связь с `order_list` идет через поле `order_id`).
С помощью поиска по названию товара, необходимо найти заказы конкретного пользователя, в которых есть искомый товар.
Например вводим запрос в поиске - Ведро #123, надо получить из базы все заказы данного юзера, содержащие этот товар.

Кривой способ которым я могу решить задачу - получить сначала все заказы, в которых есть данный товар через таблицу orders_items.. а затем делать выборку заказов.. но тут придется фильтровать чужие(заказы не конкретного пользователя, а всех) заказы и тд... это лишняя обработка...
Можно наоборот, сначала все заказы взять юзера, а затем в цикле откинуть те что не содержат искомого товара.. но это тоже лишние трудозатраты ))


Думаю как-то с помощью JOIN или как-то иначе надо решить более грамотно данную задачу..
Направьте пожалуйста, кто уже владеет данными инструментами smile
Спасибо

Неактивен

 

#2 18.06.2018 16:03:10

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Поиск заказов по товарам в них

Джоин избавит Вас от нескольких запросов, например так:

SELECT `l`.* FROM `orders_list`as `l`
JOIN `orders_items`as `i` on `i`.`order_id`=`l`.`id`
WHERE `l`.`user_id`=? AND `i`.`name`='Ведро'
 

Это общий вид, выбирайте только нужные Вам поля.

Но я бы также в таблицу товаров заказа добавил бы поле user_id для улучшения производительности поиска и тогда искать нужно будет по таблице товаров, а не заказов.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 19.06.2018 08:49:45

diepower
Участник
Зарегистрирован: 18.06.2018
Сообщений: 2

Re: Поиск заказов по товарам в них

Neval написал:

Джоин избавит Вас от нескольких запросов

спасибо!!! попробую пока ваш пример адаптирую
smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson