从同一个表连接mysql结果

mjqavswn  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(307)

我精通mysql中的连接表,但是在连接来自同一个表的结果时遇到了问题。我正在用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 2dir 1 的id作为其父项。
还跟我在一起吗?

|- dir 1
|  + dir 2

文件夹 dir 1 由其uniq字符串标识,所以 w2d4f6 . 所以我想做的是:
获取已删除的记录的父id uniq='w2d4f6' 父id为 1 查找记录在哪里 parent_id=1 我知道这是完全错误的,我想我应该使用 JOIN 但我尝试了以下方法却没有成功。 SELECT folders.label,folders.parent_id FROM folders WHERE folders.uniq='w2d4f6' AND folders.id=folders.parent_id

1l5u6lss

1l5u6lss1#

要获取文件夹的子级,请执行以下操作:

select b.label, b.parent_id
from folders a, folders b
where a.uniq = 'w2d4f6' AND b.parent_id = a.id
rjzwgtxy

rjzwgtxy2#

如果您已经有父数据,并且只想通过父数据的uniq值请求子数据,则应该可以这样做:

SELECT label, parent_id FROM folders WHERE parent_id IN (SELECT id FROM folders WHERE uniq='w2d4f6')

相关问题