Я хочу получить все дочерние категории с определенной родительской категорией И я хочу присоединиться к моей таблице продуктов к этому результату. Результатом должна быть навигационная панель, где пользователь может щелкнуть по родительской категории и получить все продукты этой категории с дочерними категориями.Получить все дочерние категории из вложенного набора И присоединиться к таблице продуктов
Breadcrumb выглядит так: Electronic >> Music >> MP3-Player >> Flash
Если пользователь нажимает «Музыка», результат должен содержать все продукты в категориях «Музыка», «MP3-плеер» и «Вспышка».
Я использую вложенный набор, но мне очень сложно справиться со сложными запросами.
Моя база данных выглядит следующим образом:
category_table: ID/Имя/LFT/RGT products_table: ID/Название/Описание/PIC/category_id/...
Мой запрос теперь выглядит следующим образом:
$result=mysql_query('SELECT *, node.id, node.name
FROM category AS node,
category AS parent,
category AS sub_parent,
(
SELECT node.name
FROM category AS node,
category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.id = 23
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree JOIN products ON products.id = id
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
ORDER BY node.lft;') or die(mysql_error());
Но это дает мне ошибку "# 1104 - SELECT, изучит более строк max_join_size, проверьте ваше WHERE и использование SET SQL_BIG_SELECTS = 1 или SET max_join_size = # если SELECT, все в порядке". Я не понимаю.
, если вы можете сделать изменения в БД, я предлагаю использовать поле «Breadcrumb» в таблице категорий, и магазин через запятую значение всех родителей в этой области, то поиск будет относительно легко и увеличить добавляет производительность преимущество. –