题库表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`;

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