我的表其实是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里,只需要使用“(+)”就可以达到你说的效果。
追问但是不加查询条件,直接取全表的记录的话确实实现了,但是加查询条件了就不行了,比如经过条件筛选之后s1为4条,s2为1条,连接的结果就只剩一条了
追答试试这个
select S1.*,S2.*,S3.* from S1,S2,S3 where S1.a= S2.a(+) and S1.a=S3.g(+)
================================================================
补充,我去百度找了篇博客介绍连接的,很详细,你可以参考一下。
http://blog.csdn.net/cuiyaonan2000/article/details/8479664
我用的就是这个sql,不过后面还要加各个表的查询条件,加进去就有问题了
追答因为都是连接的S1表,所以经过条件筛选后如果S1有4条,则肯定查询出4条记录,即使S2只有1条记录,也仅仅是让结果中的3条记录后边的字段值为null而已啊。
===============================================================
我明白你的意思了,把连接写成完整版就可以了,例如
select S1.*,S2.* from S1 left join S2 on S1.a= S2.a and S2.a > 0