我已經創建了一個父 - 子關係表(部分/子部分或類別。子類別)。我想先通過父'SectionSort'字段進行排序,然後通過兒童'SectionSort'字段進行排序。MySQL根據排序字段值對父/子進行排序
實施例的表:
IDSection | SectionParentID | SectionSort | SectionName
-------------------------------------------------------
2 | 0 | 2 | Chapter 2
1 | 0 | 1 | Chapter 1
5 | 1 | 1 | Subchapter 1
4 | 1 | 3 | Subchapter 3
3 | 1 | 2 | Subchapter 2
7 | 2 | 2 | Sunchapter 5
6 | 2 | 1 | Subchapter 4
「SectionSort」日提交可以是dynamicaly變化通過上下移動,以根據列的用戶需求。
我需要得到以下結果:
IDSection | SectionParentID | SectionSort | SectionName
-------------------------------------------------------
1 | 0 | 1 | Chapter 1
2 | 0 | 2 | Chapter 2
3 | 1 | 1 | Subchapter 1
4 | 1 | 2 | Subchapter 2
5 | 1 | 3 | Subchapter 3
6 | 2 | 1 | Sunchapter 4
7 | 2 | 2 | Subchapter 5
或者是這樣的:
Chapter 1
-Subchapter 1
-Subchapter 2
-.....
-SubChapter 3
Chapter 2
-Subchapter 4
-Subchapter 5
這是我嘗試,但只工作到一個新的水平不LEVE 3〜N:
SELECT EvalQuestions.*, Child.SectionSort AS Child_SectionSort, Parent.SectionParentsIDs AS Parent_SectionParentsIDs, Parent.SectionParentNames AS Parent_SectionParentNames,
Parent.SectionName AS Parent_SectionName, Parent.SectionSort AS Parent_SectionSort, Parent.SectionParentID AS Parent_SectionParentID
FROM EvalQuestions INNER JOIN (EvalSections Parent INNER JOIN EvalSections Child ON
Parent.SectionParentID = Child.IDSection) ON
EvalQuestions.SectionID = Parent.IDSection
ORDER BY Parent.SectionSort, Child.SectionSort, QuestionSort
只用了一章和子章就很簡單。但是,如果有潛在的無限級別,那麼不可能使用您當前的設計(mysql不支持遞歸查詢)。調查嵌套集模型,這將允許多層次的父母/子女關係。另一種方法是嘗試構建在自定義mysql函數中執行查詢的結構。 – Kickstart