MySQL 中两个表的递归语句
Recursive statement in MySQL on two tables
我现在第一次使用 MySQL 数据库,需要创建一个 "tree traversal" 查询。
我有 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|
--------------------------------
在这个数据库中,每个团队可以有一个child个团队,每个团队可以关联多个船员。
我要创建的是一个查询,我可以在其中输入 Team.id,它将 return 团队成员中的所有 Crew,其中 Team.id是他们团队的祖先(不仅仅是parent,一般祖先)。还有 Team.id 本身的船员。
例如,如果我将 Team.id(在查询中)设置为 2,它将 return "Test 2" 和 "Test 3" 的船员。如果我输入 1,它将 return "Test 1"、"Test 2"、"Test 3" 和 "Test 4" 的工作人员。
我在 Whosebug 上进行了搜索并找到了一些答案,但它们是我对 MySQL.
的经验的概括方式。
提前致谢。
据我所知,递归 select 未 在 MySql 中实现。可以通过编写递归 MySql 函数来实现。
我现在第一次使用 MySQL 数据库,需要创建一个 "tree traversal" 查询。
我有 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|
--------------------------------
在这个数据库中,每个团队可以有一个child个团队,每个团队可以关联多个船员。
我要创建的是一个查询,我可以在其中输入 Team.id,它将 return 团队成员中的所有 Crew,其中 Team.id是他们团队的祖先(不仅仅是parent,一般祖先)。还有 Team.id 本身的船员。
例如,如果我将 Team.id(在查询中)设置为 2,它将 return "Test 2" 和 "Test 3" 的船员。如果我输入 1,它将 return "Test 1"、"Test 2"、"Test 3" 和 "Test 4" 的工作人员。
我在 Whosebug 上进行了搜索并找到了一些答案,但它们是我对 MySQL.
的经验的概括方式。提前致谢。
据我所知,递归 select 未 在 MySql 中实现。可以通过编写递归 MySql 函数来实现。