日期:2014-05-16  浏览次数:20562 次

两张表查询问题
SQL Server
表名:a和b
其中a是人员信息表,b是组织结构表
每个人员都隶属于一个组织单位
a表中有两个字段a1和a2,a1含义:组织单位内码,a2含义:部门内码
b表中有个字段b1,b1含义:内码

a.a1=b.b1
a.a2=b.b1
就是要知道哪个人员隶属于哪个组织或部门,要用a1和a2去b1查询,请问这个语句怎么写?
------解决方案--------------------


create table testa(name varchar(10),a1 int,a2 int)
insert testa 
select '张三',1,3 union all
select '李四',2,4
create table testb(b1 int,bname nvarchar(10))
insert testb
select 1,'Xxx单位' union all
select 2,'yyy单位' union all
select 3,'管理部' union all
select 4,'宣传部' 

select 名字=a.name,
单位=b.bname,
部门=c.bname
from testa a
inner join testb b
on a.a1=b.b1
inner join testb c
on a.a2=c.b1

/*
名字 单位   部门
张三 Xxx单位 管理部
李四 yyy单位 宣传部
*/


------解决方案--------------------
select * from a1 a inner join b1 b on a.a1=b.b1 and a.a2=b.b1