select muqian.emp_no,(muqian.salary -douyou.salary) as growth from (select s.emp_no,s.salary from salaries s where s.to_date = '9999-01-01') as muqian inner join (select s.emp_no,s.salary from employees e inner join salaries s on e.hire_date = s.from_date) as douyou on muqian.emp_no = douyou.emp_no order by growth
这里最外层的select,虽然是muqian.salary和douyou.salary,但是不是之前各自单独表里面的薪水,而是内连接之后的薪水见上图第三行。我原本是想着把新的内连接的表保存为新表,然后用新表的薪水1列减去薪水2列,但是没必要,
也就是说,这里内连接好了后,不另存为新表,直接用之前未连接的表名与相关列进行计算也可以,所以我就一直搞不懂,连接之后到底要不要别名,现在我总结下来,
连接之后,如果是作为子查询,外面还要再套连接,就给个别名,
但是如果不用再连接了,已经是最后一层了,就不用给别名了
感觉SQL还是不如python,我一直想着能不能把当前薪水另存为“变量”,方便后面使用,可是好像不行,无法把计算好的另存为“变量”,必须作为表的一部分,把所有要算的东西通过各种连接连到同一张表里面,再进行计算。