时间限制:1秒 空间限制:32768K
题目描述
获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary,当前表示to_date=‘9999-01-01’
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));
输入描述:
无
输出描述:

本题主要是要区分谁是主表,谁是从表,根据输出salaries是主表,dept_manager是从表
代码1
select s.*,d.dept_no
from salaries as s,dept_manager as d
where date(s.to_date) = ‘9999-01-01’
and date(d.to_date) = ‘9999-01-01’
and s.emp_no = d.emp_no ;
运行时间:16ms
占用内存:3296k
代码2
select s.*,d.dept_no
from salaries as s,dept_manager as d
where s.to_date = ‘9999-01-01’
and d.to_date = ‘9999-01-01’
and s.emp_no = d.emp_no ;
运行时间:20ms
占用内存:3432k
代码3
select s.*,d.dept_no
from salaries as s inner join dept_manager as d
on s.emp_no = d.emp_no
where s.to_date = ‘9999-01-01’
and d.to_date = ‘9999-01-01’
运行时间:16ms
占用内存:3320k
使用了join …on 的联结方法
本文介绍了一种SQL查询技巧,通过对比三种不同的SQL语句,展示了如何有效地获取部门经理的当前薪水情况,强调了使用JOIN...ON联结方法的重要性。
1009

被折叠的 条评论
为什么被折叠?



