基本的に次のようなスキーマがあります。
CREATE TABLE `data` (
`id` int(10) unsigned NOT NULL,
`title` text,
`type` tinyint(4),
`parent` int(10)
)
フィールドは単なる列挙型であり、type
1は親タイプ、2は子タイプです(実際には多くのタイプがあり、親のように動作するタイプと子のように動作するタイプがあります)。このparent
フィールドは、レコードが別のレコードの子であることを示しています。
これは、作成したいクエリにはおそらく理想的ではないことはわかっていますが、これを使用する必要があります。
親レコードが。で並べ替えられるようにデータを並べ替えてtitle
グループ化し、各親の下にグループ化されるのは、で並べ替えられた子レコードtitle
です。そのようです:
ID | title |type |parent
--------------------------------
4 | ParentA | 1 |
2 | ChildA | 2 | 4
5 | ChildB | 2 | 4
7 | ParentB | 1 |
9 | ChildC | 2 | 7
1 | ChildD | 2 | 7
**編集**
type
私たちは、フィールドを完全に写真から取り除くことができるはずです。nullでない場合parent
は、親の下にグループ化する必要があります。