美文网首页
SQL多表减法

SQL多表减法

作者: 龙眠散人 | 来源:发表于2021-02-22 17:00 被阅读0次

题目描述

有一个员工表employees简况如下:

image

有一个薪水表salaries简况如下:

image

请你查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为

(注:可能有employees表和salaries表里存在记录的员工,有对应的员工编号和涨薪记录,但是已经离职了,离职的员工salaries表的最新的to_date!='9999-01-01',这样的数据不显示在查找结果里面,以上emp_no为2的就是这样的)

image
1、使用内连接获取员工入职薪水
select s.emp_no,s.salary

from salaries as s

inner join employees as e

on s.emp_no = e.emp_no and s.from_date=e.hire_date
image.png
2、使用俩次内连接获取员工入职薪水和当前薪水
select s1.emp_no,s1.salary

from salaries s1 inner join

(select s.emp_no,s.salary

from salaries as s

inner join employees as e

on s.emp_no = e.emp_no and s.from_date=e.hire_date) as e1

on s1.emp_no=e1.emp_no
image.png
3、结果做差
select s1.emp_no,(s1.salary-e1.salary) as growth

from

# 查询当前工资

(select emp_no,salary

from salaries

where to_date='9999-01-01') as s1

# 内连接2次查询结果

inner join

# 查询入职时候的工资

(select s.emp_no,s.salary

from salaries as s

inner join employees as e

on s.emp_no = e.emp_no and s.from_date=e.hire_date) as e1

on s1.emp_no=e1.emp_no

order by growth

扩展:
需求:
查询 C 的结果,其中 C = A - B;
A的结果需要连表查询;
B的结果也需要连表查询;

实现:
过程一:

select sum(A) from 表a a
left join 表b b
on a.pid = b.id
where b.id = 1;

过程二:

select sum(B) from 表c c
left join 表d d
on c.pid = d.id
where d.id = 1;

结果:

select(m.A - n.B) as result
from
(select sum(A) as A from 表a a
left join 表b b
on a.pid = b.id
where a.id = 1) m,
(select sum(B) as B from 表c c
left join 表d d
on c.pid = d.id
where d.id = 1)n;

相关文章

  • SQL多表减法

    题目描述 有一个员工表employees简况如下: 有一个薪水表salaries简况如下: 请你查找所有员工自入职...

  • Mysql 一些实用方法笔记!

    sql 注入: sql 导入数据: 批量插入数据: sql 关联更新多表数据: sql 关联删除多表数据: mys...

  • SQL多表查询高级应用

    SQL多表查询 多表连接示范 两张表t_user t_judge 给两张表设置外键约束查询内容 SQL多表查询 多...

  • 多表sql

    实际场景中我们实现数据获取往往是多个表联合操作 eg: 从表group,user,user-group中获得每个分...

  • 不可置信!SQL 优化终于干掉了“distinct”

    sql 优化之多表联合查询干掉 “distinct” 去重关键字 所以需要把多表的子查询的 sql 结构进行优化。...

  • SQLAlchemy(四)

    知识要点: 1.多表查询 2.原生SQL的查询 多表查询 在MySQL中我们讲了多表查询,在SQLAlchemy中...

  • sql多表查询

    普通多表查询 嵌套多表查询 链接多表查询 左链接(会将左表的内容全部输出,没有需要补NULL) 右链接(会将右表的...

  • sql多表操作

    创建表 多表操作

  • SQL多表连接

    表结构 SQL语句

  • SQL多表查询

    之前做过一个关于数据库的使用总结,里面写过一些关于数据库的常用方法的集合,但是我们在实例工作中,很可能涉及到一需要...

网友评论

      本文标题:SQL多表减法

      本文链接:https://www.haomeiwen.com/subject/asdkfltx.html