解答:
方法一
使用group by
select salary
from salaries
where to_date = '9999-01-01'
group by salary
order by salary desc
方法二
使用distinct关键字
select dintinct salary
from salaries
where to_date = '9999-01-01'
order by salary desc
疑惑:看评论区说group by 比distinct 好,不知道这两者主要的是区别在什么地方?
解答:
法一:内连接
SELECT emp_no
FROM employees
where emp_no not in ##注意,这是的语法是not in, 而不是is not in
(SELECT emp_no FROM dept_manager)
法二:左连接+NULL
select e.emp_no
from employees as e
left join dept_manager as d
on d.emp_no = e.emp_no
where d.dept_no is null
本身题目不难,manager就是有dept_no的人,d.dept_no is null就是非manager的员工
注意审题:
获取所有的员工和员工对应的经理,如果员工本身是经理的话则不显示
解答:
SELECT
de.emp_no,
dm.emp_no AS manager
FROM
dept_emp AS de
INNER JOIN dept_manager AS dm ON de.dept_no = dm.dept_no
WHERE
de.emp_no != dm.emp_no # 员工不为manager
AND de.to_date = "9999-01-01"
AND dm.to_date = "9999-01-01"
补充:别名最好取de,dm
补充:不等于可以用<>或者!=表示