假设我也有表“文件夹”和“文件”
让文件夹有两列ID和FolderID
Folder
------
ID int primary <-.
FolderId Int --`
folderId是文件夹表的Id列的内部关系
文件表有两列ID和FolderId
File
-----
Id int primary
FolderID --->Folder.ID
FolderId与Folder表的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中更有效率
答案 0 :(得分:1)
看看这个问题的答案。 Connect By Prior Equivalent for MySQL
在其他数据库(例如Oracle)中,您可以在SQL语句中使用CONNECT BY
,但似乎MySQL不支持选择中的递归。