2015-07-03 122 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;