【问题标题】:Retriving Hierarchical data using SQL使用 SQL 检索分层数据
【发布时间】:2012-10-15 20:19:18
【问题描述】:

假设我也有表“文件夹”和“文件”

让Folder有两列ID和FolderID

Folder
------
ID int primary  <-.
FolderId Int    --`

folderId是与文件夹表的Id列的内部关系

文件表有两列 ID 和 FolderId

File
-----
Id int primary
FolderID          --->Folder.ID

FolderId 与文件夹表的 ID 列有外部关系

**Folder**
Id      FolderId
---     --------
1       NULL
2       1
3       NULL
4       2
5       2

**file**
Id      FolderID
---     ---------
1        2
2        3
3        2
4        4
5        5  

希望你了解情况,

据我们所知,我们可以在文件夹内和文件夹内创建许多文件夹(递归)

现在我们要获取文件夹 id=2 及其子文件夹内的所有文件 (id) 的列表(所需文件 id 为 3、4、5)

使用递归函数我们可以让它工作,但如何在 SQL 中更有效地做到这一点

【问题讨论】:

  • 我们要检索文件列表

标签: mysql sql recursion hierarchy hierarchical-data


【解决方案1】:

看看这个问题的答案。 Connect By Prior Equivalent for MySQL

在其他数据库(如 Oracle)中,您可以在 SQL 语句中使用 CONNECT BY,但似乎 MySQL 不支持选择中的递归。

【讨论】:

    猜你喜欢
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多