msyql分级拼接成/连接

时间:2023/7/28 14:22:30 赞:0 踩:0 阅:101 标签:mysql

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

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

 

评论一下
澎涛 2023/7/28 16:03:49

澎涛 2023/7/28 16:04:26

澎涛 2023/7/28 16:05:14

澎涛 2023/7/28 16:34:45

上面有误,5738不支持变量


发表评论

注册用户登录后才能发表评论,请登录注册