【MySQL】利用SQL短路,解决无数据表连接问题

news2024/11/18 18:49:37

系列文章

MySQL安装教程(详细)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126037520

MySQL卸载教程(详细)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129279265

【MySQL】group by分类汇总,如何增加“总计”字段?
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128217837

文章目录

  • 系列文章
  • 前言
  • 一、技术介绍
  • 二、测试用例
    • 2.1 数据准备
      • 2.1.1 用户信息表
      • 2.1.2 用户权限表
      • 2.1.3 app功能菜单表
    • 2.2 执行脚本
      • 2.2.1 角色--物理检验员
      • 2.2.2 角色--管理员
  • 三、用法总结


前言

本专栏为【数据库】,主要介绍SQL的功能与特点、SQL数据定义语言(表、视图、索引、约束)、SQL数据操作语言(数据检索、数据插入、数据删除、数据更新)、创建与删除触发器、SQL数据控制语言(安全性和授权、事务处理)以及嵌入式SQL。
如果你对本专辑感兴趣,持续关注吧。大家有任何问题,也可以评论区反馈,私信我。
在这里插入图片描述

一、技术介绍

利用SQL短路,解决无数据表连接问题

二、测试用例

2.1 数据准备

2.1.1 用户信息表

/*
 Navicat Premium Data Transfer

 Source Server         : 本地连接
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : localhost:3306
 Source Schema         : dl_mes

 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001

 Date: 30/06/2023 11:14:11
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for 用户信息表
-- ----------------------------
DROP TABLE IF EXISTS `用户信息表`;
CREATE TABLE `用户信息表`  (
  `用户编号` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户姓名` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户性别` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '男',
  `用户年龄` tinyint(4) NOT NULL DEFAULT 0,
  `用户头像` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `公司编号` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `公司名称` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '空',
  `工厂名称` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `工作部门` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `工作场所` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `工作班次` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户工号` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户角色` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `外网权限` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '否',
  `软件版本` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `登录地址` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `在线状态` tinyint(4) NOT NULL DEFAULT 0,
  `心跳包` tinyint(4) NOT NULL DEFAULT 0,
  PRIMARY KEY (`用户编号`) USING BTREE,
  INDEX `AK_Key_CompanyID`(`公司编号` ASC) USING BTREE,
  INDEX `AK_Key_FactoryName`(`工厂名称` ASC) USING BTREE,
  INDEX `AK_Key_Department`(`工作部门` ASC) USING BTREE,
  INDEX `AK_Key_WorkRoom`(`工作场所` ASC) USING BTREE,
  INDEX `AK_Key_Role`(`用户角色` ASC) USING BTREE,
  INDEX `AK_Key_UserWorkID`(`用户工号` ASC) USING BTREE,
  INDEX `AK_Key_Shift`(`工作班次` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '0-1-基础信息' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of 用户信息表
-- ----------------------------
INSERT INTO `用户信息表` VALUES ('developA', '吴国宝', '男', 0, '空', 'Z', '鼎禄', '一期', 'IT服务部', 'IT办公室', '空', 'developA', '管理员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('developB', '耿飚', '男', 0, '空', 'Z', '鼎禄', '一期', 'IT服务部', 'IT办公室', '空', 'developB', '管理员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('developC', '葛游成', '男', 0, '空', 'Z', '鼎禄', '一期', 'IT服务部', 'IT办公室', '空', 'developC', '管理员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000001', '郑坤坤', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '生产车间办公室', 'W1', '000001', '粗丝车间经理', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000016', '陈国洪', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000016', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000018', '李佳宁', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000018', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000021', '文仁平', '男', 0, '空', 'Z', '鼎禄', '一期', '仓库', '仓库', 'W1', '000021', '库管员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000023', '唐杨', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '模具车间', 'W1', '000023', '模具车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000036', '唐刚', '男', 0, '空', 'Z', '鼎禄', '一期', '仓库', '仓库', 'W1', '000036', '库管员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000044', '唐益龙', '男', 0, '空', 'Z', '鼎禄', '一期', '质量部', '物理检验室', 'W1', '000044', '物理检验员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000052', '吴祥林', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000052', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000053', '刘松', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000053', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000070', '雷小庆', '男', 0, '空', 'Z', '鼎禄', '一期', '质量部', '物理检验室', 'W1', '000070', '物理检验员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000075', '雷松', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000075', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000080', '敬云兵', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000080', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000093', '陈杰', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000093', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000096', '蒋强', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000096', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000106', '叶栋荧', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000106', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000107', '李朋涛', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '粗丝车间_M', 'W1', '000107', '粗丝车间操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000112', '邱建国', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000112', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000170', '邓超', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000170', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000189', '薛铁山', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000189', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000192', '徐阳菊', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000192', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000195', '陈晓英', '男', 0, '空', 'Z', '鼎禄', '一期', '生产部', '细丝车间_D', 'W1', '000195', '润滑液操作员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000201', '张红琼', '男', 0, '空', 'Z', '鼎禄', '一期', '仓库', '仓库', 'W1', '000201', '库管员', '是', '空', '空', 0, 0);
INSERT INTO `用户信息表` VALUES ('Z000202', '李峰雷', '男', 0, '空', 'Z', '鼎禄', '一期', '仓库', '仓库', 'W1', '000202', '库管员', '是', '空', '空', 0, 0);

SET FOREIGN_KEY_CHECKS = 1;

2.1.2 用户权限表

CREATE TABLE `用户权限表`  (
  `AutoID` bigint(20) NOT NULL AUTO_INCREMENT,
  `公司编号` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户编号` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户姓名` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `用户角色` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `模组名称` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `模块名称` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `权限名称` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '空',
  `权限使能` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '否',
  PRIMARY KEY (`AutoID`) USING BTREE,
  INDEX `AK_Key_CompanyID`(`公司编号` ASC) USING BTREE,
  INDEX `AK_Key_UserID`(`用户编号` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3770 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '0-1-基础信息' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of 用户权限表
-- ----------------------------
INSERT INTO `用户权限表` VALUES (1714, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '管理员', '用户管理', '空', '否');
INSERT INTO `用户权限表` VALUES (1715, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '管理员', '数据采集', '空', '否');
INSERT INTO `用户权限表` VALUES (1716, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '管理员', '代码测试', '空', '否');
INSERT INTO `用户权限表` VALUES (1717, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '钨条打标', '空', '否');
INSERT INTO `用户权限表` VALUES (1718, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '粗丝打标', '空', '否');
INSERT INTO `用户权限表` VALUES (1719, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '采购入库', '空', '否');
INSERT INTO `用户权限表` VALUES (1720, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '产成品入库', '空', '否');
INSERT INTO `用户权限表` VALUES (1721, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '领用出库', '空', '否');
INSERT INTO `用户权限表` VALUES (1722, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '材料退库', '空', '否');
INSERT INTO `用户权限表` VALUES (1723, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '销售退货', '空', '否');
INSERT INTO `用户权限表` VALUES (1724, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '采购退货', '空', '否');
INSERT INTO `用户权限表` VALUES (1725, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '销售发货', '空', '否');
INSERT INTO `用户权限表` VALUES (1726, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '发货扫码', '空', '否');
INSERT INTO `用户权限表` VALUES (1727, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '隔离入库', '空', '否');
INSERT INTO `用户权限表` VALUES (1728, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '仓库', '隔离出库', '空', '否');
INSERT INTO `用户权限表` VALUES (1729, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '模具车间', '模具检验', '空', '否');
INSERT INTO `用户权限表` VALUES (1730, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '模具车间', '模具打标', '空', '否');
INSERT INTO `用户权限表` VALUES (1731, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '模具车间', '模具入库', '空', '否');
INSERT INTO `用户权限表` VALUES (1732, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '模具车间', '模具领用', '空', '否');
INSERT INTO `用户权限表` VALUES (1733, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '模具车间', '模具台账', '空', '否');
INSERT INTO `用户权限表` VALUES (1734, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝车间', '钨条断开', '空', '否');
INSERT INTO `用户权限表` VALUES (1735, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝车间', '钨条焊接', '空', '否');
INSERT INTO `用户权限表` VALUES (1736, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝车间', '钨条报废', '空', '否');
INSERT INTO `用户权限表` VALUES (1737, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝车间', '粗丝报废', '空', '否');
INSERT INTO `用户权限表` VALUES (1738, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝车间', '断口取样', '空', '否');
INSERT INTO `用户权限表` VALUES (1739, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝车间', '粗丝报废', '空', '否');
INSERT INTO `用户权限表` VALUES (1740, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝车间', '成品报废', '空', '否');
INSERT INTO `用户权限表` VALUES (1741, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '钨条样', '空', '否');
INSERT INTO `用户权限表` VALUES (1742, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '钨条金相样', '空', '否');
INSERT INTO `用户权限表` VALUES (1743, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '钨条力学样', '空', '否');
INSERT INTO `用户权限表` VALUES (1744, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '退火镜像样', '空', '否');
INSERT INTO `用户权限表` VALUES (1745, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '粗丝探伤', '空', '否');
INSERT INTO `用户权限表` VALUES (1746, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '粗丝样', '空', '否');
INSERT INTO `用户权限表` VALUES (1747, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '退火下机样', '空', '否');
INSERT INTO `用户权限表` VALUES (1748, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '调试样', '空', '否');
INSERT INTO `用户权限表` VALUES (1749, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '下机样', '空', '否');
INSERT INTO `用户权限表` VALUES (1750, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '清洗下机样', '空', '否');
INSERT INTO `用户权限表` VALUES (1751, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '断口样', '空', '否');
INSERT INTO `用户权限表` VALUES (1752, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '让步放行', '空', '否');
INSERT INTO `用户权限表` VALUES (1753, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '物理检验室', '样品数据修改', '空', '否');
INSERT INTO `用户权限表` VALUES (1754, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '产品数据', '空', '否');
INSERT INTO `用户权限表` VALUES (1755, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '样品数据', '空', '否');
INSERT INTO `用户权限表` VALUES (1756, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '工艺数据', '空', '否');
INSERT INTO `用户权限表` VALUES (1757, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '润滑液信息', '空', '否');
INSERT INTO `用户权限表` VALUES (1758, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '库存管理', '空', '否');
INSERT INTO `用户权限表` VALUES (1759, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '维修数据', '空', '否');
INSERT INTO `用户权限表` VALUES (1760, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '生产统计', '空', '否');
INSERT INTO `用户权限表` VALUES (1761, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '统计报表', '绩效考核', '空', '否');
INSERT INTO `用户权限表` VALUES (1762, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '工艺改进', '生产线产能', '空', '否');
INSERT INTO `用户权限表` VALUES (1763, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '工艺改进', '工艺监控', '空', '否');
INSERT INTO `用户权限表` VALUES (1764, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '工艺改进', '工艺设定', '空', '否');
INSERT INTO `用户权限表` VALUES (1765, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '生产看板', '车间看板', '空', '否');
INSERT INTO `用户权限表` VALUES (1766, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝前段', '零号旋锻上机', '空', '是');
INSERT INTO `用户权限表` VALUES (1767, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝前段', '零号旋锻下机', '空', '是');
INSERT INTO `用户权限表` VALUES (1768, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝前段', '四号旋锻', '空', '是');
INSERT INTO `用户权限表` VALUES (1769, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝前段', '一号退火', '空', '是');
INSERT INTO `用户权限表` VALUES (1770, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝前段', '三号旋锻', '空', '是');
INSERT INTO `用户权限表` VALUES (1771, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝后段', '二号旋锻', '空', '是');
INSERT INTO `用户权限表` VALUES (1772, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝后段', '二号退火', '空', '是');
INSERT INTO `用户权限表` VALUES (1773, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝后段', '一号旋锻', '空', '是');
INSERT INTO `用户权限表` VALUES (1774, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝后段', '大转盘', '空', '是');
INSERT INTO `用户权限表` VALUES (1775, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝后段', '小转盘', '空', '是');
INSERT INTO `用户权限表` VALUES (1776, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '粗丝后段', '气七模下盘', '空', '是');
INSERT INTO `用户权限表` VALUES (1777, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '退火调试', '空', '否');
INSERT INTO `用户权限表` VALUES (1778, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '退火开机', '空', '否');
INSERT INTO `用户权限表` VALUES (1779, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '退火下机', '空', '否');
INSERT INTO `用户权限表` VALUES (1780, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '涂润滑油上机', '空', '否');
INSERT INTO `用户权限表` VALUES (1781, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '涂润滑油下机', '空', '否');
INSERT INTO `用户权限表` VALUES (1782, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '拉拔上盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1783, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '调试取样', '空', '否');
INSERT INTO `用户权限表` VALUES (1784, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '生产开机', '空', '否');
INSERT INTO `用户权限表` VALUES (1785, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝前段', '成品下盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1786, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '改拉上盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1787, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '改拉调试', '空', '否');
INSERT INTO `用户权限表` VALUES (1788, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '改拉开机', '空', '否');
INSERT INTO `用户权限表` VALUES (1789, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '改拉下盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1790, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '矫直上机', '空', '否');
INSERT INTO `用户权限表` VALUES (1791, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '矫直下盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1792, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '清洗调试', '空', '否');
INSERT INTO `用户权限表` VALUES (1793, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '清洗开机', '空', '否');
INSERT INTO `用户权限表` VALUES (1794, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '原料下盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1795, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '细丝后段', '清洗下盘', '空', '否');
INSERT INTO `用户权限表` VALUES (1796, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '润滑液', '润滑液开缸', '空', '否');
INSERT INTO `用户权限表` VALUES (1797, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '润滑液', '润滑液分析', '空', '否');
INSERT INTO `用户权限表` VALUES (1798, 'Z', 'Z000075', '雷松', '粗丝车间操作员', '润滑液', '润滑液补加', '空', '否');

2.1.3 app功能菜单表

CREATE TABLE `app功能菜单表`  (
  `AutoID` int(20) NOT NULL AUTO_INCREMENT,
  `fun_guid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `img_src` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `menu_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `visible` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`AutoID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of app功能菜单表
-- ----------------------------
INSERT INTO `app功能菜单表` VALUES (2, 'Quality_1_TBarSample1', 'Quality_1_TBarSample1.html', '../image/yangpin.png', '钨条样', '是');
INSERT INTO `app功能菜单表` VALUES (3, 'Thick_1_XDZeroOn', 'Thick_1_XDZeroOn.html', '../image/shangji.png', '零号旋锻上机', '是');
INSERT INTO `app功能菜单表` VALUES (4, 'Thick_2_XDZeroDown', 'Thick_2_XDZeroDown.html', '../image/xiaji.png', '零号旋锻下机', '是');
INSERT INTO `app功能菜单表` VALUES (5, 'Thick_3_XDFour', 'Thick_3_XDFour.html', '../image/xuanduan.png', '四号旋锻', '是');
INSERT INTO `app功能菜单表` VALUES (6, 'Thick_4_THOne', 'Thick_4_THOne.html', '../image/tuihuo.png', '一号退火', '是');
INSERT INTO `app功能菜单表` VALUES (7, 'Thick_5_XDThree', 'Thick_5_XDThree.html', '../image/xuanduan.png', '三号旋锻', '是');
INSERT INTO `app功能菜单表` VALUES (8, 'Thick_6_XDTwo', 'Thick_6_XDTwo.html', '../image/xuanduan.png', '二号旋锻', '是');
INSERT INTO `app功能菜单表` VALUES (9, 'Thick_7_THTwo', 'Thick_7_THTwo.html', '../image/tuihuo.png', '二号退火', '是');
INSERT INTO `app功能菜单表` VALUES (10, 'Thick_8_XDOne', 'Thick_8_XDOne.html', '../image/xuanduan.png', '一号旋锻', '是');
INSERT INTO `app功能菜单表` VALUES (11, 'Thick_9_BigTurn', 'Thick_9_BigTurn.html', '../image/zhuanpan.png', '大转盘', '是');
INSERT INTO `app功能菜单表` VALUES (12, 'Thick_10_SmallTurn', 'Thick_10_SmallTurn.html', '../image/zhuanpan.png', '小转盘', '是');
INSERT INTO `app功能菜单表` VALUES (13, 'Thick_11_AirSevenDown', 'Thick_11_AirSevenDown.html', '../image/xiaji.png', '气七模下盘', '是');
INSERT INTO `app功能菜单表` VALUES (14, 'Thick_12_TBarScrap', 'Thick_12_TBarScrap.html', '../image/baofei.png', '钨条报废', '是');
INSERT INTO `app功能菜单表` VALUES (15, 'Thick_13_ThickScrap', 'Thick_13_ThickScrap.html', '../image/baofei.png', '粗丝报废', '是');

2.2 执行脚本

2.2.1 角色–物理检验员

执行脚本:

SELECT c.fun_guid,c.url,c.img_src,c.menu_name,
a.用户编号,a.用户角色,b.模组名称,b.权限使能
FROM dl_mes.用户信息表 a
LEFT JOIN dl_mes.用户权限表 b ON a.用户编号=b.用户编号
INNER JOIN dl_mes.app功能菜单表 c ON c.visible='是' AND (b.模块名称=c.menu_name OR a.用户角色='管理员')
WHERE a.用户编号='Z000044' AND (b.权限使能='是' OR a.用户角色='管理员');

执行结果:
在这里插入图片描述
程序效果:
在这里插入图片描述
在这里插入图片描述

2.2.2 角色–管理员

执行脚本:

SELECT c.fun_guid,c.url,c.img_src,c.menu_name,
a.用户编号,a.用户角色,b.模组名称,b.权限使能
FROM dl_mes.用户信息表 a
LEFT JOIN dl_mes.用户权限表 b ON a.用户编号=b.用户编号
INNER JOIN dl_mes.app功能菜单表 c ON c.visible='是' AND (b.模块名称=c.menu_name OR a.用户角色='管理员')
WHERE a.用户编号='developB' AND (b.权限使能='是' OR a.用户角色='管理员');

执行结果:
在这里插入图片描述
程序效果:
在这里插入图片描述
在这里插入图片描述

三、用法总结

利用OR SQL短路,SQL注入采用类似方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代理服务器之 squid、lvs、nginx、haproxy之间的区别

代理服务器之 squid、lvs、nginx、haproxy之间的区别 代理服务可简单的分为正向代理和反向代理 1、正向代理 正向代理服务器:squid 用于代理内部网络对 Internet 的连接请求(如 VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标 Web 服务器的 HT…

Spring Boot 中的 ElasticsearchRepository 是什么,原理,如何使用

Spring Boot 中的 ElasticsearchRepository 是什么,原理,如何使用 简介 Elasticsearch 是一个开源的分布式搜索和分析引擎,可以通过 RESTful API 进行访问。Spring Data Elasticsearch 是 Spring Data 项目的一部分,提供了与 El…

Java线程等待唤醒的三种方法

线程等待唤醒的三种方法 需求:我们实现A线程等待B线程执行完在执行。 Object下面的wait()和notify() 使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒线程 public static void main(String[] args) throws InterruptedException…

提高企业云服务性价比,亚马逊云科技为用户提供全面和深入的算力支持

6月27日至28日,2023亚马逊云科技中国峰会于上海顺利召开。在本次峰会上,似乎找寻到了云计算领域竞争对手均日渐成熟,而亚马逊云科技却能一直保持领先地位的原因——过去的十几年里,亚马逊云科技“基于客户需求,快速进行…

django-vue-admin ubuntu 20.04 环境准备 记录

django-vue-admin 运行记录 https://django-vue-admin.com/document/hjbs.html https://django-vue-admin.com/document/hjbs.html https://bbs.django-vue-admin.com/article/9.html https://gitee.com/liqianglog/django-vue-admin/tree/demo_project 1. 安装 ubuntu-20.04…

【八股】【C++】函数与类

这里写目录标题 形参与实参的区别函数调用过程指针和引用当函数参数引用作为函数参数有哪些好处回调函数友元函数重载匹配运算符重载直接初始化与拷贝初始化函数指针C中struct(结构)和class(类)的区别C有哪几种构造函数构造函数的…

中华太极图

python代码: import turtle turtle.circle(100) turtle.color(black,black) turtle.begin_fill() turtle.circle(50,180) turtle.circle(-50,180) turtle.right(180) turtle.circle(100,180) turtle.end_fill() turtle.penup() turtle.goto(0,25) turtle.pendown()…

06_pinctr子系统与gpio子系统

目录 pinctrl子系统简介 I.MX6ULL的pinctrl子系统驱动 PIN驱动程序讲解 设备树中添加pinctrl节点模板 gpio子系统简介 I.MX6ULL的gpio子系统驱动 GPIO驱动程序简介 gpio子系统API函数 设备树中添加gpio节点模板 与gpio相关的OF函数 LED实验 LED灯驱动程序编写 运行…

单片机中断

89C51/52的中断系统有5个中断源 ,2个优先级,可实现二级中断嵌套 。 ( P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。 &…

基于 unity 配置 adb

1.打开环境变量配置path的环境 2 找到自己的unity安装目录,找到对应路径 配置到 path 属性中 C:\~\Editor\2021.3.0f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools 3 应用保存即可

chatgpt赋能python:Win7下Python:轻松实现SEO优化

Win7下Python:轻松实现SEO优化 Python作为一门高级程序语言,不仅广泛应用于人工智能和数据科学领域,也在Web开发中扮演着重要角色。在SEO方面,Python也展现了强大的能力。本文将介绍如何在Win7下使用Python实现SEO优化。 什么是…

chatgpt赋能python:同一行Python给两个变量赋值:如何提高编程效率?

同一行Python给两个变量赋值:如何提高编程效率? 作为Python编程方面经验丰富的工程师,我们都知道Python是一种非常易学易用的编程语言,其灵活性和高效性问题业已广为人知。然而,当我们在同时对多个变量进行赋值时&…

docker学习(一)docker概述

Docker 是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于…

MobaXterm通过RDP连接Ubuntu

文章目录 RDP,FTP和SSH基础知识通过RDP连接UbuntuUbuntu安装RDP开放RDP默认端口使用MobaXterm进行连接 RDP,FTP和SSH基础知识 RDP, FTP和SSH是计算机网络中常用的远程连接协议,用于在不同计算机之间进行远程访问和文件传输。 RDP (Remote De…

Python L2: String、Class、Json

定义一个Python class class Node:def __init__(self):self.ip ""self.pods []self.count 0 Json 对象(instance) 转 dict 和字符串 n Node() n.count 1 n.ip "127.0.0.1" n.pods ["pod-x", "pod-y", "pod…

uniapp 一键登录

官网文档地址https://uniapp.dcloud.net.cn/univerify.html 一、开发前准备 1、需要先开通uni一键登录服务 开通成功后会得到 apiKey、apiSecret。这2个信息,后续需要配置在uniCloud的云函数里。同时注意保密,这2个信息也是计费凭证 2、开通uniCloud服…

机器学习实战 | emojify 使用Python创建自己的表情符号(深度学习初级)

目录 简介技术流程1. 加载依赖包2. 初始化训练和验证生成器3. 建立网络结构4. 编译和训练模型5. 保存模型权重6. 输出预测结果 完整程序1. train.py程序2. gui.py程序 简介 准备写个系列博客介绍机器学习实战中的部分公开项目。首先从初级项目开始。 本文主要介绍机器学习项目…

.Net 4726.0 Razor编译时的小差异

前言 几个月前在进行着.Net 472到6.0的升级,复用原有代码,在对Razor进行迁移中,发现原运行正常的代码,却存在报错,深入研究发现是Core下对Razor编译有一些变动。 问题复现 472 创建视图 新建.Net Framework下Mvc&#…

常州工学院单片机及应用系统设计2021-2022 学年第 二 学期 考试类型 开卷 课程编码 0302005

第一题 #include "SC95F861x_C.H" #include <INTRINS.H> unsigned char keydata0; void delay(unsigned int timer) //延时函数 { while(timer>0) timer--; } void IOinit() { P5CON0x00; P5PH0x03; P3CON0xFF; P3PH0xFF; } void readke…

字节跳动算法 提前批offer复盘

作者 | zjwang 面试锦囊之面经分享系列&#xff0c;持续更新中 欢迎后台回复"面试"加入讨论组交流噢 写在前面 北航本硕&#xff0c;非科班对搜索推荐比较感兴趣&#xff0c;平时看的文章比较多&#xff0c;所以聊的比较偏这一块大四时一段五个月的nlp方向实习&…