现在有三个表: 主表tab1(字段Z,A),tab2(字段Z,B)和tab3(字段Z,C)..现在要做连接查询,把三个表里字段Z相同的连接查询,得到的结果集含有四个字段(Z,A,B,C);
例如:tab1有一条数据(z1,a1),tab2有两条数据(z1,b1),(z1,b2), tab3有两条数据(z1,c1),(z1,c2).
查询出的结果集应该四条数据:(z1,a1,b1,null),(z1,a1,b2,null),(z1,a1,null,c1),(z1,a1,null,c2),新手请教怎么实现呢???

解决方案 »

  1.   

    楼主用 excel 画一下你的测试数据;和你的预期结果 ;
      

  2.   

    语句:
    --测试数据
    ;WITH tab1(Z,A)AS(
    select 'z1','a1' 
    ),tab2(Z,B)AS(
    select 'z1','b1' UNION ALL
    select 'z1','b2' 
    ),tab3(Z,C)AS(
    select 'z1','c1' UNION ALL
    select 'z1','c2' 
    )
    --测试数据结束
    SELECT tab1.Z,tab1.A,tab2.B,null FROM tab1 INNER JOIN tab2 ON tab2.Z = tab1.Z
    UNION
    SELECT tab1.Z,tab1.A,null,tab3.c FROM tab1 INNER JOIN tab3 ON tab3.Z = tab1.Z结果:
      

  3.   


    版主大大,excel图如下: