Каков наилучший способ получения продуктов, назначенных дочерним категориям при выборе родительской категории?
т.е. если я выбираю категорию верхнего уровня, я бы хотел получить все продукты во всех подкатегориях, а не только продукты, назначенные для выбранного текущего уровня.
поэтому выбор категории 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
этот запрос, что вы ищете?
$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;
Исправьте имена таблиц и выберите поля, которые необходимо выбрать в первую очередь. Затем сделайте что-то вроде этого:
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