• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Разминка с выборкой

  • Автор темы vital
  • Дата начала
V

vital

реамбулаю Нужно выбрать из таблички меню. Вложенность - 3 уровня. В приципе, все просто.

Код:
SELECT t1.title AS lev1,t2.title AS lev2, t3.title as lev3
FROM test_menu AS t1
JOIN test_menu AS t2 ON t2.parent = t1.id
LEFT JOIN test_menu AS t3 ON t3.parent = t2.id
WHERE t1.id = null


Вернет правильную табличку для одного пнукта(категории меню).
Теперь була. А как сделать так, что бы вернуть все категории?
т.е. что бы как-то так..


Код:
SELECT t1.title AS lev1,t2.title AS lev2, t3.title as lev3
FROM test_menu AS t1
JOIN test_menu AS t2 ON t2.parent = t1.id
LEFT JOIN test_menu AS t3 ON t3.parent = t2.id
WHERE t1.title in ( SELECT title FROM test_menu WHERE ISNULL(parent));


т.е. выстроить ттабличку уровней для каждой категории одним запросом
 
?

????

эм? оракл? тогда connect by prior :welcome:
мускул?
 
V

vital

Мускул конечно. Не настолшько я крут, для оракла)
 
V

vital

Черт, уж очень оно дохрена запросов будет делать рекурсией. Не пойдет( А с nested sets мараться не охота(
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!