родительские отношения - PullRequest
0 голосов
/ 08 декабря 2011

Каков наилучший способ присвоения товаров дочерним категориям при выборе родительской категории?

Т.е. если я выберу категорию верхнего уровня, я бы хотел получить все товары во всех подкатегориях, а не только товары, назначенные текущему выбранному уровню.

, поэтому выбор категории 1 вернет prod_id 1 и 2. Выбор категории 2 вернет prod_id 2.

**category**
id parent_id name
1     0       Vegetables
2     1       Tomatoes
3     2       Yellow Tomatoes

**product_category**
prod_id cat_id
  1       1
  2       3

**products**
prod_id name
  1       Carrot
  2       Small Yellow Tomato

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

этот запрос вы ищете?

$query =<<<MYSQL
 SELECT `prod_id`
 FROM `produdct_category` 
  INNER JOIN `category` ON `product_category`.`cat_id` = `category`.`id`
 WHERE `category`.`parent_id` = {$selectedParentId}
MYSQL;

Обновленный вопрос, обновленный ответ:

$query =<<<MYSQL
 SELECT *
 FROM `produdcts` 
  INNER JOIN `produdct_category` ON `products`.`prod_id` = `produdct_category`.`prod_id`
  INNER JOIN `category` ON `product_category`.`cat_id` = `category`.`id`
 WHERE `category`.`id` = {$selectedCatId}
   OR `category`.`parent_id` = {$selectedCatId}
MYSQL;
0 голосов
/ 08 декабря 2011

Исправьте имена таблиц и выберите поля, которые нужно выбрать в первую очередь.Затем сделайте что-то вроде этого:

SELECT * FROM `products` AS p
INNER JOIN `product_category` AS pc ON p.id = pc.prod_id
INNER JOIN `category` AS c ON pc.cat_id = c.id
WHERE `parent_id` = YOUR_VALUE_HERE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...