@daMage

Как сделать сложный sql запрос?

Добрый вечер. Есть бд с новостями, у каждой новости хранится id категории. Нужно исходя из этого id получить название категории и по возможности всех родителей (или хотя бы одного). Категории в базе хранятся по принципу nested sets.
В итоге должна получится выборка
id title category parent [... parentN]
  • Вопрос задан
  • 2586 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если количество родителей непостоянно, то в одну строку не получится. Для nested set выбор всей ветки узла по id узла:
SELECT @left_key := `left_key`, @right_key := `right_key` 
    FROM `tree` 
    WHERE `id` = $id;
SELECT * 
    FROM `tree` 
    WHERE `left_key` <= @left_key AND `right_key` >= @right_key 
    ORDER BY `left_key`;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vampiro
google -> mysql left join self
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы