[英]Joining MySQL results from the same table
我精通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'
的记录的父ID 1
parent_id=1
记录 我知道这是完全错误的,我认为我应该使用JOIN
但是我尝试了以下操作而没有成功。
SELECT folders.label,folders.parent_id FROM folders WHERE folders.uniq='w2d4f6' AND folders.id=folders.parent_id
获取文件夹的子代:
select b.label, b.parent_id
from folders a, folders b
where a.uniq = 'w2d4f6' AND b.parent_id = a.id
如果您已经具有父数据,并且只想通过父数据的uniq值请求子数据,则此方法应该起作用:
SELECT label, parent_id FROM folders WHERE parent_id IN (SELECT id FROM folders WHERE uniq='w2d4f6')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.