热线电话:13121318867

登录
2020-06-01 阅读量: 950
MYSQL:left join

一、题目描述

查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no(请注意输出结果,dept_no列是最后一列)

CREATE TABLE `dept_manager` (

`dept_no` char(4) NOT NULL comment '部门编号',

`emp_no` int(11) NOT NULL comment '员工编号',

`from_date` date NOT NULL,

`to_date` date NOT NULL,

PRIMARY KEY (`emp_no`,`dept_no`));

CREATE TABLE `salaries` (

`emp_no` int(11) NOT NULLcomment '员工编号',

`salary` int(11) NOT NULL,

`from_date` date NOT NULL,

`to_date` date NOT NULL,

PRIMARY KEY (`emp_no`,`from_date`));

二、解题思路

1、需要得到当前(dept_manager.to_date='9999-01-01')领导,当前(salaries.to_date='9999-01-01')薪水,对应部门编号dept_no,输出结果dept_no列是最后一列,说明dept_no所在表dept_manager为附表

2、以salaries为主表,将dept_manager中的dept_no左连到salaries表

select a.*,b.dept_no

from salaries as a

left join dept_manager as b

on a.emp_no=b.emp_no

where a.to_date='9999-01-01' and b.to_date='9999-01-01'

;

27.2207
6
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子