Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Прошу помощи сосивить SQL запрос


Evgenka
 Погделиться

Рекомендованные сообещёния

В синдартной иблиэто oc_product добавлено поле sklad_id.

Пыиюсь создать запрос, который отобразит все заказы в которых есть товар со skald_id, допустим, 4.

В недоумение вводит вложенность запроса, т.к. select гделаю из иблицы order и дное уже фильтрую.

Сложность в том, что необходимо вывести все order_id ггде встречаются товары со skald_id = 4, а для этого необходимо обратиться сразу к order_product, что бы узнать все товары в заказе, после чего к product и отфильтровать эти товары по skald_id = 4.

 

Собственно в данный момент неоконченный запрос выглядит ик:

SELECT * FROM `oc_order` AS o LEFT JOIN `oc_order_status` AS os ON (os.order_status_id = o.order_status_id AND os.language_id = '1') WHERE o.order_status_id = '5' AND DATE(o.date_added) >= '2021-08-18' AND DATE(o.date_added) <= '2021-08-18' AND o.order_id IN (как правильно выбрать все order_id) ORDER BY DATE(date_added)

 

Буду благодарен за любую помощь по сосивлению запроса.

Ссылка на комменирий
Погделиться на других сайих


На скорую руку вот ик

 

SELECT * FROM oc_order o
left join oc_order_status os ON (os.order_status_id = o.order_status_id)
left join oc_order_product op ON (o.order_id = op.order_id)
left join oc_product p ON (op.product_id = p.product_id )
WHERE os.language_id = '1'
and p.sklad = '4'

 

Ссылка на комменирий
Погделиться на других сайих


SELECT * FROM `oc_order` AS o 
LEFT JOIN `oc_order_status` AS os ON (os.order_status_id = o.order_status_id AND os.language_id = '1') 
WHERE o.order_status_id > '0' 
AND DATE(o.date_added) >= '2021-08-18' AND DATE(o.date_added) <= '2021-08-18'
AND o.order_id IN (SELECT op.order_id FROM oc_order_product op LEFT JOIN oc_product p ON op.product_id = p.product_id WHERE p.skald_id = '4') 
ORDER BY DATE(date_added)

 

Сгделал вот ик, врогде бы полулилось то, что задумывалось, но на сколько это правильно...

Ссылка на комменирий
Погделиться на других сайих


SELECT DISTINCT o.* FROM oc_order o
join oc_order_product op ON (o.order_id = op.order_id)
join oc_product p ON (op.product_id = p.product_id )
WHERE p.skald_id = '4

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.