尝试一
结果:不通过
代码:
select salaries.*,dept_manager.dept_no from dept_manager inner join salaries
on salaries.emp_no = dept_manager.emp_no where dept_manager.to_date='9999-01-01' and salaries.to_date='9999-01-01';
分析:主、附表顺序搞反了。因为题目要求salariesz在前,编号在后
尝试二
结果:答案正确:恭喜!您提交的程序通过了所有的测试用例
代码:
select salaries.*,dept_manager.dept_no from salaries inner 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';
warning:我将数据导入mysql中,使用尝试一、尝试二、获得的结果都是一样的。真是日了狗了 ?
结论
- inner join 是保留相同的部分
- left join 保留左边的部分,左边那个表为主表
- right join 保留右边的部分,右边那个表为主表
参考
left join 与 right join 区别
图解SQL的inner join、left join、right join、full outer join、union、union all的区别