我有一个带有很多表(超过60个)的oracle DB。
例如:
表1
ID STRING DATA
1 ABC READ
2 CDE WRITE
3 FGH READ
4 HSS WRITE
5 FFH WRITE
表2
ID Name Feb
1 Deven 12
4 Monish 21
5 Ritesh 22
表3
ID STRING DATA READY
1 ABC READ OK
2 CDE WRITE NO
3 FGH READ OK
我需要创建一个新表,其中为每个ID显示该ID的所有db表中包含的所有字段和信息。全部在同一行。:
新表我需要创建
ID STRING DATA Name Feb READY
1 ABC READ Deven 12 OK
2 CDE WRITE NO
3 FGH READ OK
4 HSS WRITE Monish 21
5 FFH WRITE Ritesh 22
我要使用哪种命令?
请耐心等待,因为我是sql语言的新手。
非常感谢
答案 0 :(得分:2)
基本上,您需要从第一个表开始的大left outer join
(基于您的示例数据):
select t1.id, t1.string, t1.data, t2.name, t2.feb, t3.ready
from table1 t1 left join
table2 t2
on t1.id = t2.id left join
table3 t3
on t1.id = t3.id;
如果id
是唯一(或右侧)join
密钥,则无法从示例数据中判断出来。但是,您应该(并且需要)知道表之间的关系,以便创建正确的查询。
如果您想在表格中使用此功能,只需将create table as
语句预先挂在select
之前。
答案 1 :(得分:0)
Create a view,其中包含您想要的字段。然后执行INSERT INTO ... SELECT * FROM view ...
。