物料表: table1
物料号 采购员编号 物料员编号
M1 N1 N2
M2 N3 N7
.....
员工表: table1
员工编号 员工姓名
N1 AAA
N2 BBB
N3 CCC
N4 DDD
......
怎么用SQL获取
物料号 采购员编号 姓名 物料员编号 姓名
M1 N1 AAA N2 BBB
.....
这样的记录 ,最好用join on
物料号 采购员编号 物料员编号
M1 N1 N2
M2 N3 N7
.....
员工表: table1
员工编号 员工姓名
N1 AAA
N2 BBB
N3 CCC
N4 DDD
......
怎么用SQL获取
物料号 采购员编号 姓名 物料员编号 姓名
M1 N1 AAA N2 BBB
.....
这样的记录 ,最好用join on
insert @a select 'M1', 'N1', 'N2'
union all select 'M2', 'N3', 'N7'declare @b table(员工编号 varchar(10), 员工姓名 varchar(10))
insert @b select 'N1', 'AAA'
union all select 'N2', 'BBB'
union all select 'N3', 'CCC'
union all select 'N4', 'DDD'select 物料号,采购员编号,b.员工姓名 [姓名1],物料员编号,c.员工姓名 [姓名2] from @a a Inner Join @b b On a.采购员编号=b.员工编号 Inner Join @b c On a.物料员编号=c.员工编号
from table1 a
left join table2 b on a.采购员编号 = b.员工编号
left join table2 c on a.物料员编号 = c.员工编号
select a.物料号,a.采购员编号,b.员工姓名,a.物料员编号,c.员工姓名
from table1 a,table2 b
a.采购员编号 *= b.员工编号
from table1 a
left join table2 b on a.采购员编号 = b.员工编号
left join table2 c on a.物料员编号 = c.员工编号不管在table2中有没有找合适的记录,table1中的记录都会显示,但找不到的情况下,相应的字段为空如果改为select a.物料号,a.采购员编号,b.员工姓名,a.物料员编号,c.员工姓名
from table1 a
inner join table2 b on a.采购员编号 = b.员工编号
inner join table2 c on a.物料员编号 = c.员工编号就变成,只有找到的,才显示了,如果找不到,就不显示。
from table1 left join table2 on table1.采购员编号 = table2.员工编号
left join table2 as table3 on table1.物料员编号 = table3.员工编号
from table1 a inner join table2 b on a.采购员编号 *= b.员工编号