zayac-admin/continew-admin-system/src/main/resources/mapper/MenuMapper.xml
Charles7c 2d71af9efb 优化:优化 SQL 语句风格
1.MySQL数据库>SQL语句>第10条:
【推荐】SQL 语句中表的别名前加 as,并且以 t1、t2、t3、...的顺序依次命名。
说明:
  1)别名可以是表的简称,或者是依照表在 SQL 语句中出现的顺序,以 t1、t2、t3 的方式命名。
  2)别名前加 as 使别名更容易识别。
正例:select t1.name from first_table as t1 , second_table as t2 where t1.id = t2.id
个人理解:使用 t1、t2、t3... 的表别名命名方式,在很多类似业务查询的场景会更方便复用;使用 AS 而不是 as 更容易阅读。
2023-03-10 23:17:25 +08:00

28 lines
1.3 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="top.charles7c.cnadmin.system.mapper.MenuMapper">
<select id="selectPermissionByUserId" resultType="java.lang.String">
SELECT DISTINCT t1.`permission`
FROM `sys_menu` AS t1
LEFT JOIN `sys_role_menu` AS t2 ON t2.`menu_id` = t1.`id`
LEFT JOIN `sys_role` AS t3 ON t3.`id` = t2.`role_id`
LEFT JOIN `sys_user_role` AS t4 ON t4.`role_id` = t3.`id`
LEFT JOIN `sys_user` AS t5 ON t5.`id` = t4.`user_id`
WHERE t5.`id` = #{userId}
AND t1.`type` IN (2, 3)
AND t1.`status` = 1
AND t3.`status` = 1
</select>
<select id="selectListByUserId" resultType="top.charles7c.cnadmin.system.model.entity.MenuDO">
SELECT t1.*
FROM `sys_menu` AS t1
LEFT JOIN `sys_role_menu` AS t2 ON t2.`menu_id` = t1.`id`
LEFT JOIN `sys_role` AS t3 ON t3.`id` = t2.`role_id`
LEFT JOIN `sys_user_role` AS t4 ON t4.`role_id` = t3.`id`
LEFT JOIN `sys_user` AS t5 ON t5.`id` = t4.`user_id`
WHERE t5.`id` = #{userId}
AND t1.`status` = 1
AND t3.`status` = 1
</select>
</mapper>