Задать вопрос
@daMage

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

Добрый вечер. Есть бд с новостями, у каждой новости хранится id категории. Нужно исходя из этого id получить название категории и по возможности всех родителей (или хотя бы одного). Категории в базе хранятся по принципу nested sets.
В итоге должна получится выборка
id title category parent [... parentN]
  • Вопрос задан
  • 2587 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽