【发布时间】:2011-03-16 04:01:59
【问题描述】:
我需要你的帮助来构建一个我无法理解的 SQL 语句。
在数据库中,我有四个表 - 文件、文件夹、文件夹文件和链接。
我有很多文件。其中之一称为“myFile.txt”。
我有很多文件夹。 “myFile.txt”在其中一些。它出现的第一个文件夹称为“firstFolder”。
我有许多指向许多文件夹的链接。 “firstFolder”的第一个链接称为“firstLink”。
示例的数据结构是:
// files
Id: 10
Name: "myFile.txt"
// folders
Id: 20
Name: "firstFolder"
// folder_files (join table)
Id: 30
Folder_Id: 20 (meaning "firstFolder")
File_Id: 1 (meaning "myFile.txt")
// links
Id: 40
Name: "firstLink"
Folder_Id: 20 (meaning "firstFolder")
第一个问题:如何根据文件夹的最低 ID 和链接?
第二个问题:如何获取“myFile.txt”的记录以及“firstLink”(第一个链接)的名称和 ID,根据文件夹和链接的最低 ID 查询所有文件?
换一种说法 - 如何获得第一个指向包含“myFile.txt”的文件夹的第一个链接?
生成如下所示的记录:
Id: 10
Name: "myFile.txt"
LinkId: 40
LinkName: "firstLink"
谢谢!
【问题讨论】:
-
“第一”是指ID最低的吗?
-
我添加了标签
greatest-n-per-group。尝试单击该标签,您会看到许多其他类似问题的案例以及解决方案。尝试阅读其中的一些内容,然后返回并用您尝试过的内容编辑您的问题(最好自己做作业)。抱歉,我不得不蚕食你的subselect标签,因为标签限制为五个。但是你不一定需要子选择来解决这个问题。 -
@Wrikken - 是的,最低 ID。 @bill - 感谢您的编辑,尽管我是 SQL 新手,但我真的不知道每个组中最伟大的 n 组之间的关系如何?我想我只是在做连接......?在发布之前,我在这个论坛和网络上搜索了一个小时。
标签: sql mysql join greatest-n-per-group