msyql分级拼接成/连接

作者:澎涛 | 分类:科技 | 发布时间:2023-07-28 14:22:31 | 阅读:342 | 点赞:0 | 点踩:0
标签: 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`;

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

 


评论 (4)

登录 后发表评论

澎涛 2023-07-28 16:03:49

👍 0 | 👎 0
澎涛 2023-07-28 16:04:26

👍 0 | 👎 0
澎涛 2023-07-28 16:05:14

👍 0 | 👎 0
澎涛 2023-07-28 16:34:45

上面有误,5738不支持变量

👍 0 | 👎 0