题库表teskbank
| Field | Type | Comment | |
| id | int(11) NOT NULL | ||
| pro_type | varchar(50) NOT NULL | 专业分类 | |
| Q | text NOT NULL | 题目 | |
| A | varchar(50) NOT NULL | 答案 ["A"] ["A","B"] ["正确"]或["错误"] | |
| style | int(11) NOT NULL | 题型 1单选 2多选 3判断 | |
| create_date | datetime NULL | ||
| create_man | varchar(10) NULL | ||
| update_date | datetime NULL | ||
| update_man | varchar(10) NULL | ||
| type_id | int(11) NOT NULL | 题库目录 即类型 |
题库目录表teskbank_type
| Field | Type | Comment | |
| id | int(11) NOT NULL | ||
| type_name | varchar(100) NOT NULL | 目录名称 | |
| parent_id | int(11) NOT NULL | 父目录id 根目录为0 |
先要求在题库表中返回该题库的分类,格式:根目录/等级一/等级二
SELECT u.id, u.q,u.type_id, CONCAT_WS('/', d3.`type_name`, d2.`type_name`, d1.`type_name`) AS department
FROM testbank u
JOIN teskbank_type d1 ON u.`type_id` = d1.`id`
LEFT JOIN teskbank_type d2 ON d1.`parent_id` = d2.`id`
LEFT JOIN teskbank_type d3 ON d2.`parent_id` = d3.`id`;

从语句可以看出来,只能返回三个等级。如果是不确定等级有多少就需要用递归了。