A表
ID 姓名 类型
1 小张 业务员
2 小李 业务员
3 小王 话务员
4 小陈 话务员B表
客户名称 业务员 话务员
1001 1 4
1002 2 3
1003 2 4
1004 1 3我最终是想要把B表的业务员ID和话务员ID显示A表中对应的姓名,sql应该怎么写呢
ID 姓名 类型
1 小张 业务员
2 小李 业务员
3 小王 话务员
4 小陈 话务员B表
客户名称 业务员 话务员
1001 1 4
1002 2 3
1003 2 4
1004 1 3我最终是想要把B表的业务员ID和话务员ID显示A表中对应的姓名,sql应该怎么写呢
select b.客户名称,(case when c.类型 = N'业务员' then c.姓名 else '' end) as 业务员,
(case when d.类型 = N'话务员' then d.姓名 else '' end) as 话务员
from b left join a c on b.业务员 = b.id
left join a d on b.话务员 = b.id
( select b.客户名称, a.姓名 , b.话务员 from a , b where a.id = b.业务员) c
where a.id = c. 话务员
b.客户名称,
(case when c.类型 = '业务员' then c.姓名 else '' end) as 业务员,
(case when d.类型 = '话务员' then d.姓名 else '' end) as 话务员
from
b
left join a c
on
b.业务员 = b.id
left join a d
on
b.话务员 = b.id
from B left join A on B.业务员=A.ID
left join A as C on B.话务员=C.ID
b.客户名称,
业务员 = c.姓名,
话务员 = d.姓名
FROM B表 b
LEFT JOIN (SELECT * FROM A表 WHERE 类型=N'业务员') c
ON b.业务员 = c.ID
LEFT JOIN (SELECT * FROM A表 WHERE 类型=N'话务员') d
ON b.话务员 = d.ID