联表查询问题,需要逐级向下获取,再联查

x_project_t 和x_dept_t两个表
x_project_t是项目列表 dept_id
x_dept_t 是部门表 有level和parentid id
x_key_t 是键值表
部门表按公司和部门存储,并用level划分

例 项目表

namedept_id
项目10

例 部门表

nameidlevelparentid
公司11--
子部门1021

例 key表

dept_idkey
1keyvalue

现在x_project_t 表里存的是dept_id是部门的 level = 2 需要再向下查一级,我想直接把公司级别关联的key字段直接从x_project_t查询语句中返回,当x_project_t关联的dept_id可能是公司,也可能是部门时,怎么添加if语句判断中的语句才能达到目的

SELECT
p.id,
d.key,
FROM
x_project_t p LEFT JOIN x_dept_t d ON p.dept_id=d.id
<if table="level == 2"> //如果level=2需要再向下查一级,并替换key信息

</if>

或者有什么别的更简单的方法

阅读 859
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题