jonny008 Опубликовано 6 декабря, 2017 Жалоба Поделиться Опубликовано 6 декабря, 2017 Здравствуйте. Есть необходимость выгрузить товары некоторых категории в XML Для этого создал в таблице s_categories столбец efind Далее в Categories.php в запросе добавил c.efind // Выбираем все категории $query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.efind, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.position FROM __categories c ORDER BY c.parent_id, c.name"); Далее в шаблоне админки и в контроллерах. и в самом файле efind.php // Товары $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, c.efind, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id , i.filename as image FROM __variants v INNER JOIN __categories c LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) WHERE p.visible AND c.efind >0 AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position "); Всё на подобии выгрузки в ЯМ. По такому запросы выводятся все товары. Я в запросах полный ноль. Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Пастухов Опубликовано 6 декабря, 2017 Решение Жалоба Поделиться Опубликовано 6 декабря, 2017 Надо вместо INNER JOIN __categories c что-то типа LEFT JOIN __categories c ON c.id=pc.category_id И, скорее всего, в другом месте запроса... Цитата Ссылка на сообщение Поделиться на другие сайты
jonny008 Опубликовано 6 декабря, 2017 Автор Жалоба Поделиться Опубликовано 6 декабря, 2017 Надо вместоINNER JOIN __categories c что-то типаLEFT JOIN __categories c ON c.id=pc.category_id И, скорее всего, в другом месте запроса...Спасибо большое. Заработало так: // Товары $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, c.efind, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id , i.filename as image FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) LEFT JOIN __categories c ON c.id=pc.category_id WHERE p.visible AND c.efind >0 AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position "); Цитата Ссылка на сообщение Поделиться на другие сайты
DyxLEzz Опубликовано 6 декабря, 2017 Жалоба Поделиться Опубликовано 6 декабря, 2017 Ребята, я новичок на форуме, как задавать вопрос? Не найду определенную кнопку Цитата Ссылка на сообщение Поделиться на другие сайты
Gruzin Опубликовано 6 декабря, 2017 Жалоба Поделиться Опубликовано 6 декабря, 2017 Ребята, я новичок на форуме, как задавать вопрос? Не найду определенную кнопкуЗаходите в нужную тему и нажимаете кнопку Новая тема Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.