有一个全部员工的薪水表salaries简况如下: 有一个各个部门的领导表dept_manager简况如下: 建表语句如下: 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`)); CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`)); 请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:-笔试面试资料

这是qklbishe.com第9954 篇笔试面试资料
提供答案分析,通过本文《有一个全部员工的薪水表salaries简况如下:

有一个各个部门的领导表dept_manager简况如下:

建表语句如下: 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`));
CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`)); 请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

有一个全部员工的薪水表salaries简况如下:
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:

有一个各个部门的领导表dept_manager简况如下:
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.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`));

CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));

请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:

有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:

有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 双木青橙
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:
关于为什么一定要两个表格的时间都限制成规定时间(9999-01-01)呢?
—–因为薪水表是按年发的,而题目要查找的是当前的薪水,所以要过滤掉以前,而dept_manager是因为有领导会离职,to_date时间不一定是9999-01-01,所以要过滤过离职的领导

2018-05-02 10:59:08 回复(20)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 搬砖的小哪吒
select s.* ,d.dept_no from salaries as s  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';  

这里的坑主要在于两个表的逻辑关系,题目要求是薪水情况以及部门编号,再结合输出情况dept_no 被放到了最后一列,可见是主表是“salaries”。这里顺序错了就会提示:您的代码无法通过所有用例。。。

2018-01-28 16:24:12 回复(64)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: nomico271
 
SELECT s.*, d.dept_no FROM salaries s ,  dept_manager d
WHERE s.to_date='9999-01-01'
AND d.to_date='9999-01-01'
AND s.emp_no = d.emp_no;

2017-07-10 09:51:23 回复(60)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 帅气滴大红
#由于输出顺序是按照emp_no递增来的,join时salaries表要放在前面,否则输出顺序不对
#由于两个表都有重复数据,所以两个表的to_date都要做限制
select salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no
from salaries join dept_manager on dept_manager.emp_no = salaries.emp_no
where salaries.to_date = ‘9999-01-01’ and dept_manager.to_date = ‘9999-01-01’;
2017-10-09 11:57:05 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 小Andy
select salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no 
from salaries inner join dept_manager
on dept_manager.emp_no = salaries.emp_no
where dept_manager.to_date = ‘9999-01-01’ 
and salaries.to_date = ‘9999-01-01’;
————————–
select salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no 
from dept_manager  inner join salaries
on dept_manager.emp_no = salaries.emp_no
where dept_manager.to_date = ‘9999-01-01’ 
and salaries.to_date = ‘9999-01-01’;

—————————
只是换了一下表的顺序,上面的能成功,下面的却失败。是否对顺序有要求?

2017-07-10 11:30:44 回复(28)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 三哥哥
SELECT d.dept_no,s.* FROM dept_manager d,salaries s 
WHERE s.to_date=’9999-01-01′ 
AND d.to_date=’9999-01-01′ 
AND s.emp_no = d.emp_no;
这个为什么是错的,因为显示出来和图上的要求不一样,dept_no变成在前面
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:

2017-08-11 14:45:54 回复(12)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 小杜又饿了
select s.*, m.dept_no from salaries as s inner join dept_manager as m      on s.emp_no = m.emp_no     where s.to_date='9999-01-01' and m.to_date='9999-01-01' order by emp_no asc;

  • 首先s中的表行肯定大于manager,因为s中除了m还有一般员工,可以用inner join完成表的链接,这样能确保框架表中的人员都是交集(manager)

  • 当前员工的筛选标准就是to_date

  • 最后记住orderby需要用本表中存在的字段,不能引用原表字段哦

2020-06-26 22:55:58 回复(1)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 大都督201903172214140
用隐式内连接,显式内连接,和外连接均可。需要注意的是左外连接 on后不能直接加and当作限制条件,显示外连接可以可以
隐式内连接
select t1.*,t2.dept_no
from salaries t1, dept_manager t2
where t1.to_date = ‘9999-01-01’
and t2.to_date = ‘9999-01-01’
and t1.emp_no = t2.emp_no;

显式外连接
select s.* ,d.dept_no
from salaries as s
join dept_manager as d
on s.emp_no=d.emp_no
and s.to_date = ‘9999-01-01’
and    d.to_date=’9999-01-01′;

左外连接
select s.*,d.dept_no
from salaries s
left join dept_manager d
on s.emp_no = d.emp_no
where s.to_date = ‘9999-01-01’
and d.to_date = ‘9999-01-01’;

2020-03-13 22:07:54 回复(3)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: livepool86
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’;
2021-03-27 23:36:12 回复(1)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 超越她哥
select s.*, d.dept_no from salaries as s, dept_manager as d where s.emp_no = d.emp_no and s.to_date = '9999-01-01'; 

在mysql下面这样就通过了。

2017-10-29 10:45:46 回复(6)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 区块链毕设学生155177号
select s.*,d.dept_no 
from salaries s
left/inner/right join dept_manager d 
on d.emp_no=s.emp_no
where s.to_date=’9999-01-01′
and d.to_date=’9999-01-01′;
其实可以使用内来接,左外链接和右外连接,或不用连接来实现,几种连接的区别就是根据表不同
例如:左外连接主要侧重于左边连接

2017-07-10 22:17:24 回复(3)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 颜洛滨
这题目感觉有问题,交换表的位置就不行了:
=============================================
可以的代码:
 
select s.*, d.dept_no
 from salaries s ,dept_manager d
where d.to_date = '9999-01-01'
and s.to_date = '9999-01-01'
and d.emp_no = s.emp_no
============================================
不可以的代码
select s.*, d.dept_no  from dept_manager d, salaries s  where d.to_date = '9999-01-01' 	and s.to_date = '9999-01-01' 	and d.emp_no = s.emp_no

2017-09-12 15:38:18 回复(6)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: JohnWick888
select a.*,b.dept_no from salaries a,dept_manager b 
where a.emp_no=b.emp_no 
order by a.emp_no
这样不简单么,为啥好多人搞那么麻烦

2021-04-07 20:45:08 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 区块链毕设学生427503696号
select salaries.emp_no,salary,from_date,salaries.to_date,dept_no
from salaries
join dept_manager on salaries.emp_no=dept_manager.emp_no
2021-03-20 02:38:57 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 加油牛牛
select s.emp_no,s.salary,s.from_date,s.to_date,d.dept_no
from (
    select emp_no,
           dept_no
    from dept_manager
    where to_date=’9999-01-01′) d
left join(
    select emp_no,
           salary,
           from_date,
           to_date
    from salaries 
    where to_date=’9999-01-01′) s 
on s.emp_no=d.emp_no
order by s.emp_no;
2021-02-01 17:01:58 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: Atopos_ordinary
select s.*,d.dept_no from salaries s join dept_manager d
on s.emp_no=d.emp_no
where s.to_date="9999-01-01" and d.to_date="9999-01-01";

select s.*,d.dept_no from salaries s,dept_manager d
where s.to_date="9999-01-01" and d.to_date="9999-01-01"
and s.emp_no=d.emp_no;

2021-01-06 16:32:25 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 区块链毕设学生397747951号
SELECT s.emp_no ,s.salary ,s.from_date ,s.to_date ,d.dept_no
FROM salaries s INNER JOIN dept_manager d 
ON s.emp_no = d.emp_no
AND d.to_date=’9999-01-01′ 
AND s.to_date=’9999-01-01′

ORDER BY s.emp_no asc
第三题:主要考察做了一个内连接,然后剩下的按部就班把要素填好就好了。

2020-11-27 15:35:29 回复(1)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 区块链毕设学生405485947号
select b.emp_no,b.salary,b.from_date, b.to_date,a.dept_no from 
dept_manager a join (select  d.emp_no,d.salary,d.from_date, d.to_date from dept_manager c inner join salaries d on c.to_date=d.to_date and d.to_date=’9999-01-01′ GROUP BY d.emp_no,d.salary,d.from_date,d.to_date   ) b where b.emp_no=a.emp_no ORDER BY b.emp_no

为什么这行代码提交出错啊

2020-11-07 10:47:49 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 别说话11
第一种:
select salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no

from   salaries
left join  dept_manager
on dept_manager.emp_no=salaries.emp_no 

where salaries.to_date=’9999-01-01′   and dept_manager.to_date=’9999-01-01′
第二种:
select salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no
from   salaries
left join  dept_manager
on dept_manager.emp_no=salaries.emp_no 
where salaries.to_date=’9999-01-01′   and dept_manager.to_date=salaries.to_date
根据别人的回答可讲select 部分优化为select select salaries.*,dept_manager.dept_no
from   salaries
还可以使用别名优化sql语句长度,这里就不贴出来了

2020-09-14 12:35:32 回复(0)
有一个全部员工的薪水表salaries简况如下:                        有一个各个部门的领导表dept_manager简况如下:                   建表语句如下:        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`));    CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));       请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下: 区块链毕设学生30985553号
SELECT salaries.emp_no, salaries.salary, salaries.from_date, salaries.to_date, dept_manager.dept_no  FROM salaries RIGHT JOIN dept_manager ON salaries.emp_no= dept_manager.emp_no WHERE dept_manager.to_date='9999-01-01' AND salaries.to_date='9999-01-01' ORDER BY salaries.emp_no 

为什么right join 不行,必须要用join?有人能解释一下吗

2020-09-11 06:01:35 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 有一个全部员工的薪水表salaries简况如下: 有一个各个部门的领导表dept_manager简况如下: 建表语句如下: 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`)); CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`)); 请你查找各个部门领导薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列,以上例子输入如下:-笔试面试资料

提供最优质的资源集合

立即查看 了解详情