Как получить родительскую категорию у подкатегории первого уровня?
У меня сайт интернет магазин. Есть товары. У товаров своя таблица Товары. У каждого товара есть категория. Есть отдельная таблица с Категориями. Есть категории, есть подкатегории(больше ничего, 1 уровень). Я их разделяю по parent_id, просто записываю у каждой подкатегории ее основную категорию.
При создании товара администратор указывает у товара подкатегорию, в бд у товара я записываю подкатегорию, но при выводе мне нужно показать ее родительскую категорию(название), которая связана по parent_id.
пишу на php pdo mysql, как можно сделать такую связь?
Думал может так сделать, но не работает. Ничего не выводится, что за ошибка сам не могу понять. Хотя вроде все правильно.
$status = 0;
$stmt = $pdo->prepare("SELECT categories.name, tovar.status, tovar.created_at, tovar.categories_id
FROM tovar
LEFT JOIN categories c ON (tovar.categories_id = c.id)
LEFT JOIN categories pc ON (c.parent_id = pc.id)
WHERE tovar.status = :status ORDER BY tovar.created_at DESC");
$stmt->execute(array(':status' => $status));
while($row = $stmt->fetch(PDO::FETCH_OBJ)) {
print_r($row);
}
данные в бд есть. пример:
таблица tovar
id categories_id
1 3
таблица categories
id name parent_id
1 Машина 0
2 Вертолет 0
3 Большие машины 1
4 Маленькие машины 1
Есть товар, у которого указана подкатегория с id = 3, подкатегория 3 связана с родительской категорией 1, и нужно вывести название род. категории с id = 1
Ответы (1 шт):
На сколько я понял, у товара есть id подкатегории, а в таблице подкатегории есть id главной категории, название которой вам и надо вытащить.
Скажем есть таблицы: products, categories, subcatigories
SQL запрос:
SELECT name FROM categories WHERE id_categories = (SELECT parent_id FROM subcatigories WHERE id_subcatigories = (SELECT subcatigories_id FROM products WHERE id = 1))
Надеюсь, я правильно понял проблему и смог вам помочь.