1、
create table hr
(
code varchar(20) primary key,
name varchar(20)
);
2、
create table auditing
(
pro_id varchar(20) primary key,
fillpsn_id varchar(20),
chkpsn_id varchar(20)
);
表一:hr
code name
1001 张三
1002 李四
1003 王五
表二:auditing
pro_id fillpsn_id chkpsn_id
01 1001 1003
02 1002 1003
需要实现的功能是这样的,获取到表二的记录,要关联到表一中的人员名字,体现名字而不是数字id
流程编号 申请人 审核人
01 张三 王五
1、子查询,最简单
2、不用子查询,表连接也可实现,一下脚本为表连接方式
SELECT
pro_id,
MAX(CASE WHEN fillpsn_id=code THEN name
ELSE '' END
) fillpsn_name,
MAX(CASE WHEN chkpsn_id=code THEN name
ELSE '' END
) chkpsn_name
FROM auditing
LEFT JOIN hr ON code=fillpsn_id OR code=chkpsn_id
GROUP BY pro_id
select a.pro_id as '流程编号',b.name as '申请人' ,c.name as '审核人' from auditing a
left join hr b on a.fillpsn_id=b.code
left join hr c on a.chkpsn_id=c.code