懂SQL的进来看看,已经因我很久了,解决问题再给(500分)(100分)

  • 主题发起人 主题发起人 无疯无禄
  • 开始时间 开始时间

无疯无禄

Unregistered / Unconfirmed
GUEST, unregistred user!
表1
编号 姓名 单位
1 张三 一号单位
2 李四 二号单位
3 王五 四号单位
4 赵六 五号单位

表2
组编号 组成员1编号 组成员2编号
1 1 3
2 2 4
我想建一个组视图如下

组视图
组编号 组成员1姓名 组成员1单位 组成员2姓名 组成员2单位
1 张三 一号单位 王五 四号单位
2 李四 二号单位 赵六 五号单位

请问要怎么写!!!!
如果行的话我再送500分
 
什么数据库?
 
为什么这样建表!一个组固定只有2个成员了?
 
Select a.组编号,
b.姓名 组成员1姓名,b.单位 组成员1单位,
c.姓名 组成员2姓名,c.单位 组成员2单位,
From 表2 a,表1 b,表1 c
Where a.组成员1编号=b.编号 and a.组成员2编号=c.编号
 
利用表的别名来实现

那样,在查询时就把表1当作两个表来查询,

create view xxx as
select 表2.组编号, t1.姓名,t1.单位,t2.姓名,t2.单位
from 表2,表1 t1,表1 t2
where 表2.组成员1编号=t1.编号
and 表2.组成员2编号=t2.编号
 
用的是SQL SERVER 数据库
 
给你写的SQL适合SQL Server和 Oracle两种
 
同意anzhiping的意见,用表别名可以多次引用同一个表,在某些情况下能达到事半功倍的
效果
 
create view xxx as
select 表2.组编号, t1.姓名,t1.单位,t2.姓名,t2.单位
from 表2 left join 表1 t1 on 表2.组成员1编号=t1.编号
left join 表1 t2 on 表2.组成员2编号=t2.编号
 
同意anzhiping的,没错。利用别名。
 
create view xxx as
select T.组编号 as 组编号,
T1.姓名 as 组成员1姓名,T1.单位 as 组成员1单位,
T2.姓名 as 组成员2姓名,T2.单位 as 组成员2单位
from 表2 T
left join 表1 T1 on T.成员1编号=T1.编号
left join 表1 T2 on T.成员2编号=T2.编号
 
多人接受答案了。
 
后退
顶部