有两张表,a1,a2,a3
a1有字段
x1,x2,x2
1,2,3a2有字段
y1,y2
01,02;
03,04;
05,06;
a3有字段
z1,z2,z3,z4
i1,i2,i3,i4
j1,j2,j3,j4
我要查询的结果是
x1,x2,x3,y1,y2,z1,z2,z3,z4
 1, 2, 3,01,02,i1,i2,i3,i4
         03,04,j1,j2,j3,j4
         05,06 
因为是往三张表中填写:
希望在上面空的位置不要数据,也不想被占用空行
用一条sql语句写出来,,

解决方案 »

  1.   

    不知道你是用什么条件关联,如果oracle数据库,好像有row_num一类的也可以
    have a try
    select a1.*, b.* form a1 right join (select a2.*, a3.* from a2 left join a3 where a2.row_num = a3.row_num) b where a1.row_num = b.row_num
      

  2.   

    把where改成on,好久不用,语法记不清了
      

  3.   

    mysql -u'' -p'' -h'' -e'';-e里面可以书写多条SQL.
      

  4.   

    刚才仔细的看了看.有三张表,a1,a2,a3
    a1有字段
    x1,x2,x2
    1,2,3a2有字段
    y1,y2
    01,02;
    03,04;
    05,06;
    a3有字段
    z1,z2,z3,z4
    i1,i2,i3,i4
    j1,j2,j3,j4做一个rownum列,对三个表进行连接SELECT u.x1,u.x2,u.x3,u.y1,u.y2,s3.z1,s3.z2,s3.z3,s3.z4 FROM (SELECT * FROM 
    (SELECT @r1:=@r1+1 r1, a1.*  FROM (SELECT @r1:=0) r1, a1) s1 RIGHT JOIN 
    (SELECT @r2:=@r2+1 r2, a2.*  FROM (SELECT @r2:=0) r2, a2) s2 on
    (s1.r1=s2.r2)) u RIGHT JOIN 
    (SELECT @r3:=@r3+1 r3, a3.*  FROM (SELECT @r3:=0) r3, a3) s3 ON (u.r2=s3.r3);这样不知是否符合楼主的要求.