2015-07-03 120 views
0

有一個表我現在有:查詢訂購父/子-層次結構

enter image description here

我想不出一個查詢,將使「名稱」一欄的,我需要的順序。

我需要它是這樣的:
ads->work_and_business->search_work->require_work->freelance->transport->cars->trucks->water->air->...

所以,基本上我需要像父 - >所有的孩子,旁邊父 - >所有兒童

有人可以幫助這一點?

編輯:表創建腳本:需要對其他的PHP部分東西級別:

CREATE TABLE categories ( 
    id int(11) NOT NULL AUTO_INCREMENT, 
    level int(11) NOT NULL DEFAULT '1', 
    parent_category_id int(11) NOT NULL DEFAULT '1', 
    name varchar(255) DEFAULT NULL, 
    PRIMARY KEY (id), 
    KEY FK_categories_categories (parent_category_id) 
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 

EDIT2。在查詢部分它不需要

+0

能否請您做'秀創建表tblname'和粘貼效果與畫面某處 – Drew

+0

CREATE TABLE'categories' ( 'id' int(11)NOT NULL AUTO_INCREMENT, 'level' int(11)NOT NULL DEFAULT'1', 'parent_category_id' int(11)NOT NULL DEFAULT'1', 'name' varchar(255 )DEFAULT NULL, PRIMARY KEY('id'), KEY'FK_categories_categories'('parent_category_id') )ENGI NE = InnoDB AUTO_INCREMENT = 11 DEFAULT CHARSET = utf8 – La7v1aN

+0

@ La7v1aN代替發表評論,您可以(而且應該)使用編輯功能,並將新信息添加到問題中。我現在爲你做了。 – jpw

回答

0

我與你的樣本數據試過,我想這樣的作品

SELECT distinct(ifnull(c1.name,c.name)) as name 
from categories c 
right JOIN categories c1 ON c.id=c1.parent_category_id 
order by c.parent_category_id;