100分求一个简单的sql,请高手帮忙,2天内结贴!
我使用mysql数据库,有一个部门表dept,表结构如下:
CREATE TABLE `dept` (
`id` varchar(255) NOT NULL, --主编号
`name` varchar(255) default NULL, --部门名称
`parentId` varchar(255) default NULL, --本部门的上级部门
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `dept` VALUES ('0001', '总经理办公室', '');
INSERT INTO `dept` VALUES ('0002', '技术部', '0001');
INSERT INTO `dept` VALUES ('0003', '工程部', '0001');
INSERT INTO `dept` VALUES ('0004', '业务部', '0001');
INSERT INTO `dept` VALUES ('0005', 'OA研发中心', '0002');
INSERT INTO `dept` VALUES ('0006', 'CRM研发中心', '0002');
INSERT INTO `dept` VALUES ('0007', '公文研发组', '0005');
INSERT INTO `dept` VALUES ('0008', '实施中心', '0003');
INSERT INTO `dept` VALUES ('0009', '设备中心', '0003');
写个sql语句,将所有部门分级显示出来,
如,当前数据应该这样显示:
总经理办公室
----技术部
--------OA研发中心
------------公文研发组
--------CRM研发中心
----工程部
--------实施中心
--------设备中心
----业务部
或者数据这样显示也可以,我自己程序处理一下即可:
总经理办公室
技术部
OA研发中心
公文研发组
CRM研发中心
工程部
实施中心
设备中心
业务部
注:尽量不要使用数据库自带的函数,尽量使用SQL语句实现,复杂点、效率低点都无所谓了。
请高手帮忙了!