SQL查询父子递归

时间:2017-02-26 15:34:12

标签: mysql sql

在mySQL数据库中我有几个表格结构如下:

TABLEA: | ID | PARENT | FOO |
TABLEB: | ID | PARENT | BAR |
TABLEC: | ID | PARENT | MOO |

PARENT是任何其他表中记录的ID - 编辑:我将提前知道顶级节点的第一个表。

我需要查询数据库,从一个ID开始,该ID将是具有任何可能深度的树的顶层,所以如果我要搜索树的第一个节点的子节点:

select * from TABLEA where PARENT = "1234"
select * from TABLEB where PARENT = "1234"
select * from TABLEC where PARENT = "1234"

并组合结果,然后遍历结果并使用第一个节点子节点的ID再次运行查询以获取第二级别的每个子节点,然后为每个子节点重复此操作直到我找到所有节点每个父节点的子节点,我有我的树。

这非常慢,需要多次调用数据库。我正在寻找一个SQL技巧,让我一次性构建这个数据集。顶级节点可以来自任何表。谢谢!

0 个答案:

没有答案