И запрос в модели opencart - PullRequest
0 голосов
/ 15 апреля 2019

Я разрабатываю новый фильтр в админке opencart.Но мой запрос sql не работает

Поле "значение" объявлено в таблице oc_order_option

Запрос Sql без моего фильтра

SELECT o.order_id, CONCAT(o.lastname, ' ', o.firstname) AS customer, COUNT(po.pass_id) as passengers, m.name as carrier, cd.name as tour, o.shipping_code, o.total, os.name as order_status, o.currency_code, o.currency_value, o.date_added, o.date_modified 
FROM oc_order o 
LEFT JOIN oc_agent_to_order ato ON ato.order_id = o.order_id
JOIN oc_order_option oo ON oo.order_id = o.order_id 
JOIN oc_order_status os ON os.order_status_id = o.order_status_id 
JOIN oc_passenger_to_order po ON o.order_id = po.order_id 
JOIN oc_passenger pfo ON po.pass_id = pfo.pass_id 
JOIN oc_order_product op ON op.order_id = o.order_id 
JOIN oc_product p ON p.product_id = op.product_id 
JOIN oc_manufacturer m ON m.manufacturer_id = p.manufacturer_id 
JOIN oc_product_to_category ptc ON ptc.product_id = p.product_id AND ptc.main_category = 1 
JOIN oc_category_description cd ON cd.category_id = ptc.category_id 
WHERE o.order_status_id > '0'

Я пробую этот sqlкод для моего запроса

AND value BETWEEN '10.04.2019' AND '10.04.2019'

Полный код:

SELECT o.order_id, CONCAT(o.lastname, ' ', o.firstname) AS customer, COUNT(po.pass_id) as passengers, m.name as carrier, cd.name as tour, o.shipping_code, o.total, os.name as order_status, o.currency_code, o.currency_value, o.date_added, o.date_modified 
FROM oc_order o 
LEFT JOIN oc_agent_to_order ato ON ato.order_id = o.order_id 
JOIN oc_order_option oo ON oo.order_id = o.order_id 
JOIN oc_order_status os ON os.order_status_id = o.order_status_id 
JOIN oc_passenger_to_order po ON o.order_id = po.order_id 
JOIN oc_passenger pfo ON po.pass_id = pfo.pass_id 
JOIN oc_order_product op ON op.order_id = o.order_id 
JOIN oc_product p ON p.product_id = op.product_id 
JOIN oc_manufacturer m ON m.manufacturer_id = p.manufacturer_id 
JOIN oc_product_to_category ptc ON ptc.product_id = p.product_id AND ptc.main_category = 1 
JOIN oc_category_description cd ON cd.category_id = ptc.category_id 
WHERE o.order_status_id > '0' AND value BETWEEN '10.04.2019' AND '10.04.2019'

1 Ответ

0 голосов
/ 15 апреля 2019

Работает ли это, если вы используете правильный формат даты для констант?

value BETWEEN '2019-04-10' AND '2019-04-10'

Это, конечно, эквивалентно:

value = '2019-04-10'

Если value являетсязначение даты / времени, то это соответствует только в полночь 2019-04-10.Я подозреваю, что вы можете захотеть:

value >= '2019-04-10' AND
value < '2019-04-11'
...