oracle 数据库sql 查询语句。通过一个sql语句对多个表分别进行查询。
2个回答
展开全部
用union,举例有S1表(a,b,c,d)和S2表(a,c,d,e)和S3表(f,g),里头的字段不同,但在逻辑上有关系
(如有
s1.b=s2.e
s1.a=s3.f
s1.b=s3.g)
示例如下:
------------------------------------------------------------------------------
select S1.a as x,S1.b as y,S1.c as z from S1
union
select S2.a as x,S2.e as y,S2.c as z from S2
union
select S3.f as x,S3.g as y,'' as z from S3
------------------------------------------------------------------------------
最终结果会是三张表的和,如果S1有10条记录,S2有3条记录,S3有4条记录,则执行本SQL后会得到17条记录,其中来自S3表的数据,第三列一定为空的。
(如有
s1.b=s2.e
s1.a=s3.f
s1.b=s3.g)
示例如下:
------------------------------------------------------------------------------
select S1.a as x,S1.b as y,S1.c as z from S1
union
select S2.a as x,S2.e as y,S2.c as z from S2
union
select S3.f as x,S3.g as y,'' as z from S3
------------------------------------------------------------------------------
最终结果会是三张表的和,如果S1有10条记录,S2有3条记录,S3有4条记录,则执行本SQL后会得到17条记录,其中来自S3表的数据,第三列一定为空的。
更多追问追答
追问
我的表其实是s1.a = s2.a s1.a = s3.g,查询出来之后我希望把他们连接起来,做链接,就是现实10条记录,还有如何为每张表的查询加条件
查出来的结果希望是:s1.a s1.b s1.c s1.d s2.a s2.c s2.d s2.e s3.f s3.g
追答
我晕,那连接查询就可以了,在oracle里,只需要使用“(+)”就可以达到你说的效果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询