先有3张这样的表:天数 地区
1 a
2 b
3 c金额 地区
10 a
20 c人数 地区
100 a
200 b
300 d
100 e 想将这3张表合成这样子的表:地区 天数 金额 人数
a 1 10 100
b 2 0 200
c 3 20 0
d 0 0 300
e 0 0 100
1 a
2 b
3 c金额 地区
10 a
20 c人数 地区
100 a
200 b
300 d
100 e 想将这3张表合成这样子的表:地区 天数 金额 人数
a 1 10 100
b 2 0 200
c 3 20 0
d 0 0 300
e 0 0 100
---------- ----------
1 a
2 b
3 c已用时间: 00: 00: 00.00
10:30:47 tina@PRACTICE> select * from tb2; 金额 地区
---------- ----------
10 a
20 c已用时间: 00: 00: 00.01
10:30:50 tina@PRACTICE> select * from tb3; 人数 地区
---------- ----------
100 a
200 b
300 d
100 e已用时间: 00: 00: 00.00
10:30:53 tina@PRACTICE> select a.地区,nvl(天数,0) 天数,nvl(金额,0) 金额,nvl(人数,0) 人数 from
10:31:02 2 (select 地区 from tb1 union select 地区 from tb2 union select 地区 from tb3) a,
10:31:02 3 tb1,tb2,tb3
10:31:02 4 where a.地区 = tb1.地区(+) and a.地区 = tb2.地区(+) and a.地区 = tb3.地区(+)
10:31:02 5 order by 1;地区 天数 金额 人数
---------- ---------- ---------- ----------
a 1 10 100
b 2 0 200
c 3 20 0
d 0 0 300
e 0 0 100已用时间: 00: 00: 00.01
(select 地区 from tb1 union select 地区 from tb2 union select 地区 from tb3) a,
tb1,tb2,tb3
where a.地区 = tb1.地区(+) and a.地区 = tb2.地区(+) and a.地区 = tb3.地区(+)
order by 1;