2015-09-02 6 views
0

Теперь я впервые сижу в базе данных MySQL и вам нужно создать запрос «обход дерева».Рекурсивный оператор в MySQL на двух таблицах

У меня есть 2 таблицы:

Команда:

-------------------------------- 
|INT id|VARCHAR name|INT parent| 
-------------------------------- 
1  Test 1  null 
2  Test 2  1 
3  Test 3  2 
4  Test 4  1 
5  Test 5  null 

Экипаж:

-------------------------------- 
|INT id|VARCHAR name|INT teamId| 
-------------------------------- 

В этой базе данных, каждая команда может иметь ребенка команды, и каждая команда может иметь несколько членов экипажа.

То, что я пытаюсь создать, - это запрос, в котором я могу ввести Team.id, и он вернет всю команду, которая является членом команды, где Team.id является предком их команды (а не только родитель, общий предок). Но и экипаж самого Team.id.

Так, например, если я установил Team.id (в запросе) на 2, он вернет команду «Тест 2» и «Тест 3». Если я войду в 1, он вернет команду «Тест 1», «Тест 2», «Тест 3» и «Тест 4».

Я искал здесь на StackOverflow и придумал некоторые ответы, но они были способом обобщения для моего опыта работы с MySQL.

Заранее спасибо.

+0

https://stackoverflow.com/questions/5291054/generating-depth-based-tree-from-hierarchical-data-in-mysql-no-ctes/5291159#5291159 –

+0

Благодарим за ссылку. К сожалению, я недостаточно разбираюсь в MySQL, чтобы расширить это решение, включив поиск в две таблицы. MySQL не является базой данных, с которой я обычно работаю. – FirstHorizon

ответ

0

Насколько я знаю, рекурсивный выбор не реализован в MySql. Это может быть возможно, написав рекурсивную функцию MySql.

Смежные вопросы