从部门信息表dept,工资信息表salary和员工信息表employee中查询数据(输出信息包括员工ID,员工编号,员工姓名,所属部门,部门编号,员工工资),根据部门编号从高到低,工资从低到高列出每个员工的信息
3条回答 默认 最新
- niaonao 2021-03-12 18:04关注
select e.employee_id as '员工ID', e.employee_no as '员工编号', e.employee_name as '员工姓名', d.dept_name as '所属部门', d.dept_no as '部门编号', s.salary_amount as '员工工资' from employee e left join dept d on d.employee_id = e.employee_id left join salary s on s.employee_id = e.employee_id order by d.dept_no,s.salary_amount desc
测试表结构
CREATE TABLE `employee` ( `employee_id` INT(9) NOT NULL AUTO_INCREMENT COMMENT '主键ID标识', `employee_no` INT(9) NOT NULL COMMENT '员工编号', `employee_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '员工名称' COLLATE 'utf8mb4_general_ci', PRIMARY KEY (`employee_id`) ) COMMENT='员工基础信息表' COLLATE='utf8mb4_general_ci' ENGINE=InnoDB ; CREATE TABLE `dept` ( `dept_id` INT(9) NOT NULL AUTO_INCREMENT COMMENT '主键ID标识', `employee_id` INT(9) NOT NULL COMMENT '员工唯一标识', `dept_no` INT(9) NOT NULL COMMENT '部门编号', `dept_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '部门名称' COLLATE 'utf8mb4_general_ci', PRIMARY KEY (`dept_id`) ) COMMENT='部门基础信息表' COLLATE='utf8mb4_general_ci' ENGINE=InnoDB ; CREATE TABLE `salary` ( `salary_id` INT(9) NOT NULL AUTO_INCREMENT COMMENT '主键ID标识', `employee_id` INT(9) NOT NULL COMMENT '员工唯一标识', `salary_amount` INT(9) NOT NULL COMMENT '薪资金额', PRIMARY KEY (`salary_id`) ) COMMENT='薪资记录基础信息表' COLLATE='utf8mb4_general_ci' ENGINE=InnoDB ;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作