• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Вопрос Вывести категории с товарами SQL

Статус
В этой теме нельзя размещать новые ответы.

NOIP

Гуру форума
Регистрация
17 Фев 2008
Сообщения
327
Реакции
77
Всем привет, подскажите пожалуйста, есть WP, есть раздел товары, у товара может быть более пяти категорий, подскажите как средствами SQL вывести все категории со всеми товарами завязанными за категориями? что бы можно было увидеть все категории на товаре.
 
Решение
Не очень понятно для чего всё это.
Для переноса товаров в другую БД ?
Уточните.

Если вывести одной таблицей товары и категории, то так:
(подразумевается, что вы не меняли префикс у таблиц)

SQL:
SELECT
  `wp_posts`.`ID`,
  `wp_posts`.`post_title`,
  `wp_posts`.`post_excerpt`,
  `wp_posts`.`post_content`,
  `wp_terms`.`term_id`,
  `wp_terms`.`name`
FROM
  `wp_terms`
  LEFT OUTER JOIN `wp_term_taxonomy` ON (`wp_terms`.`term_id` = `wp_term_taxonomy`.`term_id`)
  INNER JOIN `wp_term_relationships` ON (`wp_term_taxonomy`.`term_taxonomy_id` = `wp_term_relationships`.`term_taxonomy_id`)
  INNER JOIN `wp_posts` ON (`wp_term_relationships`.`object_id` = `wp_posts`.`ID`)
WHERE
  `wp_term_taxonomy`.`taxonomy` = 'product_cat'

Каждый товар будет...
Зачем SQL?
Код:
2. Display Product Categories on Any Page
The following WooCommerce shortcodes can be used to display product categories on any page.
    [product_category]: Show all of the products in a specific category.
    [product_categories]: Show all product categories.
 
Зачем SQL?
Код:
2. Display Product Categories on Any Page
The following WooCommerce shortcodes can be used to display product categories on any page.
    [product_category]: Show all of the products in a specific category.
    [product_categories]: Show all product categories.
Мне нужно перенести базу. Как вынести все привязанные категории за товарами?
 
Не очень понятно для чего всё это.
Для переноса товаров в другую БД ?
Уточните.

Если вывести одной таблицей товары и категории, то так:
(подразумевается, что вы не меняли префикс у таблиц)

SQL:
SELECT
  `wp_posts`.`ID`,
  `wp_posts`.`post_title`,
  `wp_posts`.`post_excerpt`,
  `wp_posts`.`post_content`,
  `wp_terms`.`term_id`,
  `wp_terms`.`name`
FROM
  `wp_terms`
  LEFT OUTER JOIN `wp_term_taxonomy` ON (`wp_terms`.`term_id` = `wp_term_taxonomy`.`term_id`)
  INNER JOIN `wp_term_relationships` ON (`wp_term_taxonomy`.`term_taxonomy_id` = `wp_term_relationships`.`term_taxonomy_id`)
  INNER JOIN `wp_posts` ON (`wp_term_relationships`.`object_id` = `wp_posts`.`ID`)
WHERE
  `wp_term_taxonomy`.`taxonomy` = 'product_cat'

Каждый товар будет повторяться столько раз, сколько категорий ему соответствует.

Если перенос планируется в другую CMS, программу и.т.д., то разумнее тремя запросами сделать:
  1. выбрать товары
  2. выбрать категории
  3. выбрать данные из таблицы связей (term_relationships)
 
  • Love
Реакции: NOIP
Не очень понятно для чего всё это.
Для переноса товаров в другую БД ?
Уточните.

Если вывести одной таблицей товары и категории, то так:
(подразумевается, что вы не меняли префикс у таблиц)

SQL:
SELECT
  `wp_posts`.`ID`,
  `wp_posts`.`post_title`,
  `wp_posts`.`post_excerpt`,
  `wp_posts`.`post_content`,
  `wp_terms`.`term_id`,
  `wp_terms`.`name`
FROM
  `wp_terms`
  LEFT OUTER JOIN `wp_term_taxonomy` ON (`wp_terms`.`term_id` = `wp_term_taxonomy`.`term_id`)
  INNER JOIN `wp_term_relationships` ON (`wp_term_taxonomy`.`term_taxonomy_id` = `wp_term_relationships`.`term_taxonomy_id`)
  INNER JOIN `wp_posts` ON (`wp_term_relationships`.`object_id` = `wp_posts`.`ID`)
WHERE
  `wp_term_taxonomy`.`taxonomy` = 'product_cat'

Каждый товар будет повторяться столько раз, сколько категорий ему соответствует.

Если перенос планируется в другую CMS, программу и.т.д., то разумнее тремя запросами сделать:
  1. выбрать товары
  2. выбрать категории
  3. выбрать данные из таблицы связей (term_relationships)
Мне необходимо для переноса на другой движок, не мог не как собрать категории, спасибо, это то что нужно для меня. Все работает! Спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху