fix(database): 修复导航查询中的数据库连接条件问题
- 为父级导航连接添加删除状态和租户ID过滤条件 - 移除模型连接中不必要的 c.model = 0 条件以避免字符串转数字比较 - 为模型连接添加删除状态和租户ID过滤条件 - 添加注释说明原条件导致的性能问题
This commit is contained in:
@@ -6,8 +6,9 @@
|
||||
<sql id="selectSql">
|
||||
SELECT a.*, b.title as parentName, b.position as parentPosition, c.name as modelName
|
||||
FROM cms_navigation a
|
||||
LEFT JOIN cms_navigation b ON a.parent_id = b.navigation_id
|
||||
LEFT JOIN cms_model c ON a.model = c.model AND c.model = 0
|
||||
LEFT JOIN cms_navigation b ON a.parent_id = b.navigation_id AND b.deleted = 0 AND b.tenant_id = a.tenant_id
|
||||
<!-- c.model = 0 会触发 MySQL 字符串转数字比较,导致几乎所有模型都匹配,从而把导航行成倍放大 -->
|
||||
LEFT JOIN cms_model c ON a.model = c.model AND c.deleted = 0 AND c.tenant_id = a.tenant_id
|
||||
<where>
|
||||
<if test="param.navigationId != null">
|
||||
AND a.navigation_id = #{param.navigationId}
|
||||
|
||||
Reference in New Issue
Block a user