求一SQL语句(50分)

  • 主题发起人 主题发起人 L.Ming
  • 开始时间 开始时间
L

L.Ming

Unregistered / Unconfirmed
GUEST, unregistred user!
一索引表.
ID IDA IDB IDC
1 一 i I
2 二 ii II
3 三 iii III

数据表
data1 date2 date3
1 3 2
2 3 3
3 1 1
想用一个语句查出如下结果
DATA1 DATA1IDA DATA1IDB DATA1IDC DATA2 DATA2IDA DATA2IDB DATA2IDC DATA3 DATA3IDA DATA3IDB DATA3IDC
1 一 i I 3 三 iii III 2 二 ii II
2 二 ii II 3 三 iii III 3 三 iii III
3 三 iii III 1 一 i I 1 一 i I
 
好乱。。。
 
主表与子表的关系,假定第一表是t1,第二个表是t2
select A.data1,B.*,A.data2,C.*,A.data3,D.* from t2 A
left join t1 B on A.data1=B.id
left join t1 C on A.data2=C.id
left join t1 D on A.data3=D.id

这样应该就可以了.
 
select data1,
(select ida from 索引表 where 索引表.id=数据表 .data1) as data1ida,
(select idb from 索引表 where 索引表.id=数据表 .data1) as data1idb,
(select idc from 索引表 where 索引表.id=数据表 .data1) as data1idc,
data2,
(select ida from 索引表 where 索引表.id=数据表 .data2) as data2ida,
(select idb from 索引表 where 索引表.id=数据表 .data2) as data2idb,
(select idc from 索引表 where 索引表.id=数据表 .data2) as data2idc,
data3,
(select ida from 索引表 where 索引表.id=数据表 .data3) as data3ida,
(select idb from 索引表 where 索引表.id=数据表 .data3) as data3idb,
(select idc from 索引表 where 索引表.id=数据表 .data3) as data3idc

from 数据表
 
就用left join
 
多人接受答案了。
 

Similar threads

后退
顶部