Oracle多张独立的表查询
发布网友
发布时间:2022-04-22 06:21
我来回答
共4个回答
热心网友
时间:2022-04-09 09:46
首先生成需要查询的各表拼接SQL语句:
select 'select * from '||table_name||' where year > 0 and year<1111;' from user_tables
以上语句是自动生成7张表按条件生成的查询语句了
你就按结果集中的拼接语句查询即可。
关键点:你那7张表如果字段都不一样,那就比较麻烦,不可能一次性出来结果,通过对结果集的查询语句,运用游标来进行处理,可能会好些。追问谢谢你的分析,我对数据库不太熟悉,可能我想多了吧
热心网友
时间:2022-04-09 11:04
这7张表的字段结构也不一样,所以你只能一个表一个表的查
select * from 表 where year between 0000 and 1111
热心网友
时间:2022-04-09 12:39
select a.year,a.col(除了year外的所有字段),b.col(除了year外的所有字段),c.col(除了year外的所有字段),d.col(除了year外的所有字段),e.col(除了year外的所有字段),f.col(除了year外的所有字段),g.col(除了year外的所有字段)
from table_a a,table_b b,table_c c,table_d d,table_e e,table_f f,table_g g
where a.year=b.year and b.year=c.year and c.year=d.year and d.year=e.year and e.year=f.year and f.year=g.year and a.year between 0000 and 1111;
这样查没有什么意义啊?还需要保证7张表中除了year以外的所有字段都不能重复,重复的话要用别名。不知道你是不是要这个东西,我感觉这样查没什么意义,输出的项目也是一个乘积组合。追问真辛苦你写这么多,a.year=b.year and b.year=c.year and c.year=d.year and d.year=e.year and e.year=f.year and f.year=g.year 这个他们没关系连在一起不行啊
热心网友
时间:2022-04-09 14:30
写多个Select From吧,好像没有更好的办法。追问我要结果在同一个结果集中
追答那用union关联一下几个select就可以了啊。
selec a,b from a
union
select c,d from b;