从同一个表加入MySQL结果

时间:2018-05-21 00:34:09

标签: mysql

我精通在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。所以我想要做的是:

  1. 获取具有uniq='w2d4f6'
  2. 的记录的父ID
  3. 父ID为1
  4. 查找parent_id=1
  5. 的记录

    我知道这是完全错误的,我认为我应该使用JOIN,但我尝试了以下但没有成功。

    SELECT folders.label,folders.parent_id FROM folders WHERE folders.uniq='w2d4f6' AND folders.id=folders.parent_id

2 个答案:

答案 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')