1

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

让 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 中更有效地做到这一点

4

1 回答 1

1

看看这个问题的答案。 MySQL 的先验等价物连接

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

于 2012-10-25T15:38:33.780 回答