我精通在mySQL中加入表格,但是我在加入SAME表格的结果时遇到了麻烦。我在PHP中创建了一个文件夹结构,其中一个文件夹具有ID,父ID,随机字符串ID和标签。
我的数据库看起来像:
| id | parent_id | uniq | label
---------------------------------
| 1 | 0 | w2d4f6 | dir 1
| 2 | 1 | h9k3h7 | dir 2
前端使用uniq
var来标识文件夹。因此,在数据库中,您可以看到,如果我打开文件夹dir 1
,则文件夹dir 2
将位于其中,因为dir 2
具有dir 1
的ID作为其父母。
还在我身边吗?
|- dir 1
| + dir 2
文件夹dir 1
由其uniq字符串标识,因此w2d4f6
。所以我想要做的是:
uniq='w2d4f6'
1
parent_id=1
我知道这是完全错误的,我认为我应该使用JOIN
,但我尝试了以下但没有成功。
SELECT folders.label,folders.parent_id FROM folders WHERE folders.uniq='w2d4f6' AND folders.id=folders.parent_id
答案 0 :(得分:2)
获取文件夹的子项:
select b.label, b.parent_id
from folders a, folders b
where a.uniq = 'w2d4f6' AND b.parent_id = a.id
答案 1 :(得分:1)
如果您已经拥有父数据并且只想通过父级的uniq值请求子数据,那么这应该有效:
SELECT label, parent_id FROM folders WHERE parent_id IN (SELECT id FROM folders WHERE uniq='w2d4f6')