ImLucky Posted October 3, 2018 Share Posted October 3, 2018 Помогите, пожалуйста. Голова не варит уже. Есть стандартный запрос в catalog/model/product.php getProductSpecials SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id)LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 Мне нужно, чтобы выборка шла из определенной категории, то есть чтобы выводил не все товары со скидками, как по дефолту, а только из категории "421" Меняю запрос так SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id)LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category='421' LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 Выдает ошибку Quote #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.sta' at line 2 Что не так? Link to comment Share on other sites More sharing options...
Raino Posted October 3, 2018 Share Posted October 3, 2018 Where итоговое должно идти после всех joinов. у вас оно в середине запроса да еще и в кол-ве двух штук. Должно быть так (если в самих джоинах нет ошибок): SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 1 Link to comment Share on other sites More sharing options...
ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 20 minutes ago, Raino said: Where итоговое должно идти после всех joinов. у вас оно в середине запроса да еще и в кол-ве двух штук. Ок, с этим понял, спасибо. Действительно затупил. Надо запомнить уже наконец. Сейчас получается так SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 Link to comment Share on other sites More sharing options...
ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 Получается джоин неправильный, или что? Почему не видит таблицу? Link to comment Share on other sites More sharing options...
chukcha Posted October 3, 2018 Share Posted October 3, 2018 Научитесь форматировать запросы Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 Just now, chukcha said: Научитесь форматировать запросы Дайте направление и с удовольствием научусь. Что подразумевается под "форматированием"? Link to comment Share on other sites More sharing options... chukcha Posted October 3, 2018 Share Posted October 3, 2018 p2c.category_id 1 Link to comment Share on other sites More sharing options... chukcha Posted October 3, 2018 Share Posted October 3, 2018 SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 3 Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 2 minutes ago, chukcha said: p2c.category_id Понял, сейчас исправлю, спасибо за внимательность. Link to comment Share on other sites More sharing options... chukcha Posted October 3, 2018 Share Posted October 3, 2018 Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) 12 minutes ago, chukcha said: Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Я просто через var_dump скопировал строку запроса. Обернул на форуме в code и выставил SQL в параметрах, надеялся, что понятно всё будет. Но я вас понял, спасибо. P.S. Понятия не имею кто такой "Даниель" Edited October 3, 2018 by ImLucky Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 А, ну и да, запрос вроде работает, без ошибок, но почему-то на странице index.php?route=product/special теперь появились товары без ID, с нулевой ценой и т.д., то есть просто "пустые", фейковые. И пагинация не работает. Что на 1-ой, что на 2-ой, что на 3-ей странице одни и те же товары. getTotalProductSpecials менял, но без результата. Постараюсь разобраться, но походу надо уже спать идти. По 30-40 часов работать без сна - такое себе. В любом случае, спасибо любимое комьюнити)) Я вас люлю)) Link to comment Share on other sites More sharing options... Tom Posted October 4, 2018 Share Posted October 4, 2018 5 часов назад, ImLucky сказал: Понятия не имею кто такой "Даниель" https://www.opencart.com/blog?blog_id=48 Создатель Opencart.... Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Изменение цен опций через SQL запрос By openc, March 1 6 replies 386 views Denis80 May 27 Правильность SQL запроса By nash, March 2 3 replies 259 views Blast March 2 SQL запрос отключения категорий By petr12345, February 28 sql запрос бд 4 replies 361 views AlexDW March 1 Разобраться с медленными запросами By leskurs, May 23 2 replies 212 views esculapra May 25 Запрос на показ уведомлений By zhizherinv, April 25 2 replies 146 views buslikdrev April 25 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: General questions JOIN-ы в SQL запросе Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Обновление курса валют Приватбанк, Монобанк, НБУ для Opencart/Ocstore By bogdan281989 Deluxe - адаптивный, универсальный шаблон By aridius Кнопка view в списках (товар, категория, производитель, статья) By chukcha Автоматическое заполнение URL для 4.0 By chukcha Шаблон Nice (Free Edition) для OpenCart 3 By SergeTkach × Existing user? Sign In Sign Up Shopping section Back Purchased extensions Invoices Whishlist Alternative Contacts Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 Just now, chukcha said: Научитесь форматировать запросы Дайте направление и с удовольствием научусь. Что подразумевается под "форматированием"? Link to comment Share on other sites More sharing options...
chukcha Posted October 3, 2018 Share Posted October 3, 2018 p2c.category_id 1 Link to comment Share on other sites More sharing options... chukcha Posted October 3, 2018 Share Posted October 3, 2018 SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 3 Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 2 minutes ago, chukcha said: p2c.category_id Понял, сейчас исправлю, спасибо за внимательность. Link to comment Share on other sites More sharing options... chukcha Posted October 3, 2018 Share Posted October 3, 2018 Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) 12 minutes ago, chukcha said: Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Я просто через var_dump скопировал строку запроса. Обернул на форуме в code и выставил SQL в параметрах, надеялся, что понятно всё будет. Но я вас понял, спасибо. P.S. Понятия не имею кто такой "Даниель" Edited October 3, 2018 by ImLucky Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 А, ну и да, запрос вроде работает, без ошибок, но почему-то на странице index.php?route=product/special теперь появились товары без ID, с нулевой ценой и т.д., то есть просто "пустые", фейковые. И пагинация не работает. Что на 1-ой, что на 2-ой, что на 3-ей странице одни и те же товары. getTotalProductSpecials менял, но без результата. Постараюсь разобраться, но походу надо уже спать идти. По 30-40 часов работать без сна - такое себе. В любом случае, спасибо любимое комьюнити)) Я вас люлю)) Link to comment Share on other sites More sharing options... Tom Posted October 4, 2018 Share Posted October 4, 2018 5 часов назад, ImLucky сказал: Понятия не имею кто такой "Даниель" https://www.opencart.com/blog?blog_id=48 Создатель Opencart.... Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Изменение цен опций через SQL запрос By openc, March 1 6 replies 386 views Denis80 May 27 Правильность SQL запроса By nash, March 2 3 replies 259 views Blast March 2 SQL запрос отключения категорий By petr12345, February 28 sql запрос бд 4 replies 361 views AlexDW March 1 Разобраться с медленными запросами By leskurs, May 23 2 replies 212 views esculapra May 25 Запрос на показ уведомлений By zhizherinv, April 25 2 replies 146 views buslikdrev April 25 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: General questions JOIN-ы в SQL запросе Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Обновление курса валют Приватбанк, Монобанк, НБУ для Opencart/Ocstore By bogdan281989 Deluxe - адаптивный, универсальный шаблон By aridius Кнопка view в списках (товар, категория, производитель, статья) By chukcha Автоматическое заполнение URL для 4.0 By chukcha Шаблон Nice (Free Edition) для OpenCart 3 By SergeTkach
chukcha Posted October 3, 2018 Share Posted October 3, 2018 SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM oc_review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM oc_product_special ps LEFT JOIN oc_product p ON (ps.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category='421' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,27 3 Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 2 minutes ago, chukcha said: p2c.category_id Понял, сейчас исправлю, спасибо за внимательность. Link to comment Share on other sites More sharing options... chukcha Posted October 3, 2018 Share Posted October 3, 2018 Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) 12 minutes ago, chukcha said: Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Я просто через var_dump скопировал строку запроса. Обернул на форуме в code и выставил SQL в параметрах, надеялся, что понятно всё будет. Но я вас понял, спасибо. P.S. Понятия не имею кто такой "Даниель" Edited October 3, 2018 by ImLucky Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 А, ну и да, запрос вроде работает, без ошибок, но почему-то на странице index.php?route=product/special теперь появились товары без ID, с нулевой ценой и т.д., то есть просто "пустые", фейковые. И пагинация не работает. Что на 1-ой, что на 2-ой, что на 3-ей странице одни и те же товары. getTotalProductSpecials менял, но без результата. Постараюсь разобраться, но походу надо уже спать идти. По 30-40 часов работать без сна - такое себе. В любом случае, спасибо любимое комьюнити)) Я вас люлю)) Link to comment Share on other sites More sharing options... Tom Posted October 4, 2018 Share Posted October 4, 2018 5 часов назад, ImLucky сказал: Понятия не имею кто такой "Даниель" https://www.opencart.com/blog?blog_id=48 Создатель Opencart.... Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Изменение цен опций через SQL запрос By openc, March 1 6 replies 386 views Denis80 May 27 Правильность SQL запроса By nash, March 2 3 replies 259 views Blast March 2 SQL запрос отключения категорий By petr12345, February 28 sql запрос бд 4 replies 361 views AlexDW March 1 Разобраться с медленными запросами By leskurs, May 23 2 replies 212 views esculapra May 25 Запрос на показ уведомлений By zhizherinv, April 25 2 replies 146 views buslikdrev April 25 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: General questions JOIN-ы в SQL запросе
ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 2 minutes ago, chukcha said: p2c.category_id Понял, сейчас исправлю, спасибо за внимательность. Link to comment Share on other sites More sharing options...
chukcha Posted October 3, 2018 Share Posted October 3, 2018 Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) 12 minutes ago, chukcha said: Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Я просто через var_dump скопировал строку запроса. Обернул на форуме в code и выставил SQL в параметрах, надеялся, что понятно всё будет. Но я вас понял, спасибо. P.S. Понятия не имею кто такой "Даниель" Edited October 3, 2018 by ImLucky Link to comment Share on other sites More sharing options... ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 А, ну и да, запрос вроде работает, без ошибок, но почему-то на странице index.php?route=product/special теперь появились товары без ID, с нулевой ценой и т.д., то есть просто "пустые", фейковые. И пагинация не работает. Что на 1-ой, что на 2-ой, что на 3-ей странице одни и те же товары. getTotalProductSpecials менял, но без результата. Постараюсь разобраться, но походу надо уже спать идти. По 30-40 часов работать без сна - такое себе. В любом случае, спасибо любимое комьюнити)) Я вас люлю)) Link to comment Share on other sites More sharing options... Tom Posted October 4, 2018 Share Posted October 4, 2018 5 часов назад, ImLucky сказал: Понятия не имею кто такой "Даниель" https://www.opencart.com/blog?blog_id=48 Создатель Opencart.... Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Изменение цен опций через SQL запрос By openc, March 1 6 replies 386 views Denis80 May 27 Правильность SQL запроса By nash, March 2 3 replies 259 views Blast March 2 SQL запрос отключения категорий By petr12345, February 28 sql запрос бд 4 replies 361 views AlexDW March 1 Разобраться с медленными запросами By leskurs, May 23 2 replies 212 views esculapra May 25 Запрос на показ уведомлений By zhizherinv, April 25 2 replies 146 views buslikdrev April 25 Recently Browsing 0 members No registered users viewing this page.
ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) 12 minutes ago, chukcha said: Когда у вас, как и Даниеля, все в одну строку, то отладить визуально такой запрос практически не возможно. Это же относится и к форматированию кода, не жалейте пробелов или табов Я просто через var_dump скопировал строку запроса. Обернул на форуме в code и выставил SQL в параметрах, надеялся, что понятно всё будет. Но я вас понял, спасибо. P.S. Понятия не имею кто такой "Даниель" Edited October 3, 2018 by ImLucky Link to comment Share on other sites More sharing options...
ImLucky Posted October 3, 2018 Author Share Posted October 3, 2018 А, ну и да, запрос вроде работает, без ошибок, но почему-то на странице index.php?route=product/special теперь появились товары без ID, с нулевой ценой и т.д., то есть просто "пустые", фейковые. И пагинация не работает. Что на 1-ой, что на 2-ой, что на 3-ей странице одни и те же товары. getTotalProductSpecials менял, но без результата. Постараюсь разобраться, но походу надо уже спать идти. По 30-40 часов работать без сна - такое себе. В любом случае, спасибо любимое комьюнити)) Я вас люлю)) Link to comment Share on other sites More sharing options...
Tom Posted October 4, 2018 Share Posted October 4, 2018 5 часов назад, ImLucky сказал: Понятия не имею кто такой "Даниель" https://www.opencart.com/blog?blog_id=48 Создатель Opencart.... Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0
Recommended Posts