[牛客网sql练习]查找当前薪水详情以及部门编号dept_no

--正确的sql
select t2.*,t1.dept_no from 
(select * from salaries ) t2
left join
(select * from dept_manager) t1
on t1.emp_no=t2.emp_no
 where t1.to_date='9999-01-01'
and  t2.to_date='9999-01-01'

answer:
10002	72527	2001-08-02	9999-01-01	d001
10004	74057	2001-11-27	9999-01-01	d004
10005	94692	2001-09-09	9999-01-01	d003
10006	43311	2001-08-02	9999-01-01	d002



--错误的sql
select t2.*,t1.dept_no from 
(select * from salaries where to_date='9999-01-01' ) t2
left join
(select * from dept_manager where to_date='9999-01-01' ) t1
on t1.emp_no=t2.emp_no

answer:
10001	88958	2002-06-22	9999-01-01	
10002	72527	2001-08-02	9999-01-01	d001
10003	43311	2001-12-01	9999-01-01	
10004	74057	2001-11-27	9999-01-01	d004
10005	94692	2001-09-09	9999-01-01	d003
10006	43311	2001-08-02	9999-01-01	d002
10007	88070	2002-02-07	9999-01-01	

--
一直以为这两个sql是一样的,但是其实结果不一样,错误的sql其实是没有过滤掉最终结果中t1没有关联到的结果。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值