여기에서 많은 부분을 검색 한 후에도 문제를 해결할 수 없습니다. 그래서, 나는이 질문을 올리고있다.mysql의 동일한 테이블에서 부모 자식을 선택하십시오.
내가 이런 구조가 데이터베이스 테이블이 있습니다
folder_id folder_name parent_id
--------------------------------------
1 Private 0
2 Public 0
3 Photos 0
4 December 3
5 Bday 4
6 Celeb 5
계층 형태에서를이 폴더 구조와 같은 것입니다 : 이제
-- Private
-- Public
-- Photos
----- December
-------- Bday
----------- Celeb
, 나는를 선택하고 싶습니다 특정 폴더까지의 경로 (예 : BAYAY 또는 Celeb 폴더). 따라서 특정 폴더의 경로 사이에 폴더가있는 행만 반환하는 MySQL 쿼리가 필요합니다. 내가 명사 폴더의 경로를 원하는 경우
예를 들어, 다음 쿼리는 이러한 행 반환해야합니다 : 현재
folder_id folder_name parent_id
--------------------------------------
3 Photos 0
4 December 3
5 Bday 4
6 Celeb 5
,이 쿼리 붙어 그리고 난 그것을 만들 수 없습니다입니다 작업. 쿼리 나는 현재 노력하고 있어요 :
SELECT f.*
FROM fd_folders f
LEFT JOIN fd_folders p
ON f.folder_id = p.parent_id
WHERE f.folder_id <=6
ORDER BY f.folder_id;
을하지만, 문제는 그것은 또한 즉, 두 개의 다른 폴더를 반환하는 것입니다, 개인 및 공공.
도와주세요.
은 직접 귀하의 질문에 대답하지 않더라도 난 그냥이 게재됩니다 당신에게안부
당신은 재귀가 필요하다고 생각합니다. 아무도 그때까지 도와 줄 수 없다면 이전 스크립트를 찾을 수 있는지 보겠습니다. –
은 다음과 같아야합니다. ON p.folder_id = f.parent_id –
그리고 처리하기 위해 저장 프로 시저를 작성해야합니다. 재귀 쿼리를 실행하려면 ... –